Index: head/sys/dev/xen/balloon/balloon.c =================================================================== --- head/sys/dev/xen/balloon/balloon.c +++ head/sys/dev/xen/balloon/balloon.c @@ -79,7 +79,9 @@ #define bs balloon_stats SYSCTL_DECL(_dev_xen); -static SYSCTL_NODE(_dev_xen, OID_AUTO, balloon, CTLFLAG_RD, NULL, "Balloon"); +static SYSCTL_NODE(_dev_xen, OID_AUTO, balloon, + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "Balloon"); SYSCTL_ULONG(_dev_xen_balloon, OID_AUTO, current, CTLFLAG_RD, &bs.current_pages, 0, "Current allocation"); SYSCTL_ULONG(_dev_xen_balloon, OID_AUTO, target, CTLFLAG_RD, Index: head/sys/dev/xen/blkfront/blkfront.c =================================================================== --- head/sys/dev/xen/blkfront/blkfront.c +++ head/sys/dev/xen/blkfront/blkfront.c @@ -83,7 +83,8 @@ static MALLOC_DEFINE(M_XENBLOCKFRONT, "xbd", "Xen Block Front driver data"); static int xbd_enable_indirect = 1; -SYSCTL_NODE(_hw, OID_AUTO, xbd, CTLFLAG_RD, 0, "xbd driver parameters"); +SYSCTL_NODE(_hw, OID_AUTO, xbd, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "xbd driver parameters"); SYSCTL_INT(_hw_xbd, OID_AUTO, xbd_enable_indirect, CTLFLAG_RDTUN, &xbd_enable_indirect, 0, "Enable xbd indirect segments"); @@ -926,8 +927,8 @@ "communication channel pages (negotiated)"); SYSCTL_ADD_PROC(sysctl_ctx, children, OID_AUTO, - "features", CTLTYPE_STRING|CTLFLAG_RD, xbd, 0, - xbd_sysctl_features, "A", "protocol features (negotiated)"); + "features", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, xbd, + 0, xbd_sysctl_features, "A", "protocol features (negotiated)"); } /* Index: head/sys/dev/xen/netback/netback.c =================================================================== --- head/sys/dev/xen/netback/netback.c +++ head/sys/dev/xen/netback/netback.c @@ -1157,7 +1157,7 @@ SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "unit_test_results", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, xnb, 0, xnb_unit_test_main, @@ -1168,7 +1168,7 @@ SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "dump_rings", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, xnb, 0, xnb_dump_rings, Index: head/sys/dev/xen/xenstore/xenstore.c =================================================================== --- head/sys/dev/xen/xenstore/xenstore.c +++ head/sys/dev/xen/xenstore/xenstore.c @@ -1241,7 +1241,8 @@ /*------------------------------- Sysctl Data --------------------------------*/ /* XXX Shouldn't the node be somewhere else? */ -SYSCTL_NODE(_dev, OID_AUTO, xen, CTLFLAG_RD, NULL, "Xen"); +SYSCTL_NODE(_dev, OID_AUTO, xen, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "Xen"); SYSCTL_INT(_dev_xen, OID_AUTO, xsd_port, CTLFLAG_RD, &xs.evtchn, 0, ""); SYSCTL_ULONG(_dev_xen, OID_AUTO, xsd_kva, CTLFLAG_RD, (u_long *) &xen_store, 0, ""); Index: head/sys/xen/xenbus/xenbusb.c =================================================================== --- head/sys/xen/xenbus/xenbusb.c +++ head/sys/xen/xenbus/xenbusb.c @@ -351,7 +351,7 @@ SYSCTL_CHILDREN(tree), OID_AUTO, "xenstore_path", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, XENBUS_IVAR_NODE, xenbusb_device_sysctl_handler, @@ -362,7 +362,7 @@ SYSCTL_CHILDREN(tree), OID_AUTO, "xenbus_dev_type", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, XENBUS_IVAR_TYPE, xenbusb_device_sysctl_handler, @@ -373,7 +373,7 @@ SYSCTL_CHILDREN(tree), OID_AUTO, "xenbus_connection_state", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, XENBUS_IVAR_STATE, xenbusb_device_sysctl_handler, @@ -384,7 +384,7 @@ SYSCTL_CHILDREN(tree), OID_AUTO, "xenbus_peer_domid", - CTLTYPE_INT | CTLFLAG_RD, + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, XENBUS_IVAR_OTHEREND_ID, xenbusb_device_sysctl_handler, @@ -395,7 +395,7 @@ SYSCTL_CHILDREN(tree), OID_AUTO, "xenstore_peer_path", - CTLTYPE_STRING | CTLFLAG_RD, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, XENBUS_IVAR_OTHEREND_PATH, xenbusb_device_sysctl_handler,