Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [diff] Some minor corrections and improvements



Christoph Egger wrote:

Even if you don't have a amd64 machine, you should at least
cross-compile. build.sh is your friend. :)

Nice shot. Copy/pasted my stuff in wrong hypercalls.h file, and didn't bother. Lazy and shameful :(

Fixed.

--
Jean-Yves Migeon
jean-yves.migeon%espci.fr@localhost

Index: arch/xen/i386/npx_hv.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/i386/npx_hv.c,v
retrieving revision 1.6
diff -u -u -r1.6 npx_hv.c
--- arch/xen/i386/npx_hv.c      5 Mar 2008 04:58:29 -0000       1.6
+++ arch/xen/i386/npx_hv.c      23 Oct 2008 22:32:15 -0000
@@ -71,7 +71,7 @@
        sc->sc_dev = self;
        sc->sc_type = NPX_EXCEPTION;
 
-       printf(": using exception 16\n");
+       aprint_normal(": using exception 16\n");
 
        npxattach(sc);
 }
Index: arch/xen/include/evtchn.h
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/include/evtchn.h,v
retrieving revision 1.16
diff -u -u -r1.16 evtchn.h
--- arch/xen/include/evtchn.h   1 Jul 2008 18:49:21 -0000       1.16
+++ arch/xen/include/evtchn.h   23 Oct 2008 22:32:15 -0000
@@ -39,7 +39,7 @@
 extern struct evtsource *evtsource[];
 
 void events_default_setup(void);
-void init_events(void);
+void events_init(void);
 unsigned int evtchn_do_event(int, struct intrframe *);
 void call_evtchn_do_event(int, struct intrframe *);
 void call_xenevt_event(int);
@@ -54,8 +54,8 @@
 
 int bind_virq_to_evtch(int);
 int bind_pirq_to_evtch(int);
-void unbind_pirq_from_evtch(int);
-void unbind_virq_from_evtch(int);
+int unbind_pirq_from_evtch(int);
+int unbind_virq_from_evtch(int);
 
 struct pintrhand {
        int pirq;
Index: arch/xen/include/granttables.h
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/include/granttables.h,v
retrieving revision 1.4
diff -u -u -r1.4 granttables.h
--- arch/xen/include/granttables.h      22 Nov 2007 16:16:56 -0000      1.4
+++ arch/xen/include/granttables.h      23 Oct 2008 22:32:15 -0000
@@ -54,6 +54,6 @@
 
 /*
  * Query grant status (i.e. if remote has a valid mapping to this grant).
- * Returns GTF_reading | GTF_writing.
+ * Returns GTF_reading | GTF_writing (0 if remote does not use it anymore).
  */
 int xengnt_status(grant_ref_t);
Index: arch/xen/include/xenbus.h
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/include/xenbus.h,v
retrieving revision 1.9
diff -u -u -r1.9 xenbus.h
--- arch/xen/include/xenbus.h   16 Apr 2008 18:41:48 -0000      1.9
+++ arch/xen/include/xenbus.h   23 Oct 2008 22:32:15 -0000
@@ -159,10 +159,6 @@
 /* Used by xenbus_dev to borrow kernel's store connection. */
 int xenbus_dev_request_and_reply(struct xsd_sockmsg *msg, void **);
 
-/* Called from xen core code. */
-void xenbus_suspend(void);
-void xenbus_resume(void);
-
 void xenbus_probe(void *);
 
 int xenbus_free_device(struct xenbus_device *);
Index: arch/xen/include/xenpmap.h
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/include/xenpmap.h,v
retrieving revision 1.19
diff -u -u -r1.19 xenpmap.h
--- arch/xen/include/xenpmap.h  23 Jan 2008 19:46:45 -0000      1.19
+++ arch/xen/include/xenpmap.h  23 Oct 2008 22:32:15 -0000
@@ -52,11 +52,11 @@
 extern unsigned long *xpmap_phys_to_machine_mapping;
 
 /*   
- * On Xen-2, the start of the day virual memory starts at KERNTEXTOFF
+ * On Xen-2, the start of the day virtual memory starts at KERNTEXTOFF
  * (0xc0100000). On Xen-3 for domain0 it starts at KERNBASE (0xc0000000).
  * So the offset between physical and virtual address is different on
  * Xen-2 and Xen-3 for domain0.
- * starting with xen-3.0.2, we can add notes so that virual memory starts
+ * starting with xen-3.0.2, we can add notes so that virtual memory starts
  * at KERNBASE for domU as well.
  */  
 #if defined(XEN3) && (defined(DOM0OPS) || !defined(XEN_COMPAT_030001))
@@ -65,6 +65,9 @@
 #define        XPMAP_OFFSET    (KERNTEXTOFF - KERNBASE)
 #endif
 
+#define mfn_to_pfn(mfn) (machine_to_phys_mapping[(mfn)])
+#define pfn_to_mfn(pfn) (xpmap_phys_to_machine_mapping[(pfn)])
+
 static __inline paddr_t
 xpmap_mtop(paddr_t mpa)
 {
Index: arch/xen/include/amd64/hypercalls.h
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/include/amd64/hypercalls.h,v
retrieving revision 1.3
diff -u -u -r1.3 hypercalls.h
--- arch/xen/include/amd64/hypercalls.h 25 Aug 2008 09:21:45 -0000      1.3
+++ arch/xen/include/amd64/hypercalls.h 23 Oct 2008 22:32:15 -0000
@@ -341,6 +341,13 @@
 }
 
 static inline long
+HYPERVISOR_crash(
+       void)
+{
+       return _hypercall2(int, sched_op, SCHEDOP_shutdown, SHUTDOWN_crash);
+}
+
+static inline long
 HYPERVISOR_reboot(
        void)
 {
Index: arch/xen/include/i386/hypercalls.h
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/include/i386/hypercalls.h,v
retrieving revision 1.5
diff -u -u -r1.5 hypercalls.h
--- arch/xen/include/i386/hypercalls.h  21 Oct 2008 22:35:25 -0000      1.5
+++ arch/xen/include/i386/hypercalls.h  23 Oct 2008 22:32:16 -0000
@@ -420,6 +420,19 @@
 }
 
 static __inline long
+HYPERVISOR_crash(void)
+{
+    long ret;
+    unsigned long ign1, ign2;
+
+    _hypercall(__HYPERVISOR_sched_op,
+       _harg("1" (SCHEDOP_shutdown), "2" (SHUTDOWN_crash)),
+       _harg("=a" (ret), "=b" (ign1), "=c" (ign2)));
+
+    return ret;
+}
+
+static __inline long
 HYPERVISOR_reboot(void)
 {
     long ret;
Index: arch/xen/x86/x86_xpmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/x86/x86_xpmap.c,v
retrieving revision 1.10
diff -u -u -r1.10 x86_xpmap.c
--- arch/xen/x86/x86_xpmap.c    21 Oct 2008 15:46:32 -0000      1.10
+++ arch/xen/x86/x86_xpmap.c    23 Oct 2008 22:32:16 -0000
@@ -123,7 +123,8 @@
 #endif
 
 volatile shared_info_t *HYPERVISOR_shared_info;
-union start_info_union start_info_union;
+/* Xen requires the start_info struct to be page aligned */
+union start_info_union start_info_union __aligned(PAGE_SIZE);
 unsigned long *xpmap_phys_to_machine_mapping;
 
 void xen_failsafe_handler(void);
Index: arch/xen/xen/evtchn.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/evtchn.c,v
retrieving revision 1.38
diff -u -u -r1.38 evtchn.c
--- arch/xen/xen/evtchn.c       24 May 2008 15:09:34 -0000      1.38
+++ arch/xen/xen/evtchn.c       23 Oct 2008 22:32:16 -0000
@@ -174,7 +174,7 @@
 }
 
 void
-init_events(void)
+events_init(void)
 {
 #ifndef XEN3
        int evtch;
@@ -346,7 +346,7 @@
        return evtchn;
 }
 
-void
+int
 unbind_virq_from_evtch(int virq)
 {
        evtchn_op_t op;
@@ -370,6 +370,8 @@
 
        simple_unlock(&irq_mapping_update_lock);
        splx(s);
+
+       return evtchn;
 }
 
 #if NPCI > 0 || NISA > 0
@@ -409,7 +411,7 @@
        return evtchn;
 }
 
-void
+int
 unbind_pirq_from_evtch(int pirq)
 {
        evtchn_op_t op;
@@ -433,6 +435,8 @@
 
        simple_unlock(&irq_mapping_update_lock);
        splx(s);
+
+       return evtchn;
 }
 
 struct pintrhand *
Index: arch/xen/xen/hypervisor.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/hypervisor.c,v
retrieving revision 1.40
diff -u -u -r1.40 hypervisor.c
--- arch/xen/xen/hypervisor.c   21 Oct 2008 15:46:32 -0000      1.40
+++ arch/xen/xen/hypervisor.c   23 Oct 2008 22:32:17 -0000
@@ -251,7 +251,7 @@
 
 #ifdef XEN3
        xen_version = HYPERVISOR_xen_version(XENVER_version, NULL);
-       printf(": Xen version %d.%d\n", (xen_version & 0xffff0000) >> 16,
+       aprint_normal(": Xen version %d.%d\n", (xen_version & 0xffff0000) >> 16,
               xen_version & 0x0000ffff);
 
        xengnt_init();
@@ -263,10 +263,10 @@
        hac.hac_vcaa.vcaa_caa.cpu_func = 0;
        config_found_ia(self, "xendevbus", &hac.hac_vcaa, hypervisor_print);
 #else
-       printf("\n");
+       aprint_normal("\n");
 #endif
 
-       init_events();
+       events_init();
 
 #if NXENBUS > 0
        hac.hac_xenbus.xa_device = "xenbus";
Index: arch/xen/xen/if_xennet_xenbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/if_xennet_xenbus.c,v
retrieving revision 1.25
diff -u -u -r1.25 if_xennet_xenbus.c
--- arch/xen/xen/if_xennet_xenbus.c     16 Apr 2008 18:41:48 -0000      1.25
+++ arch/xen/xen/if_xennet_xenbus.c     23 Oct 2008 22:32:17 -0000
@@ -289,7 +289,7 @@
                        break;
                if (!pmap_extract(pmap_kernel(), rxreq->rxreq_va,
                    &rxreq->rxreq_pa))
-                       panic("xennet: no pa for mapped va ?");
+                       panic("%s: no pa for mapped va ?", device_xname(self));
                rxreq->rxreq_gntref = GRANT_INVALID_REF;
                SLIST_INSERT_HEAD(&sc->sc_rxreq_head, rxreq, rxreq_next);
        }
@@ -336,7 +336,8 @@
        ether_ifattach(ifp, sc->sc_enaddr);
        sc->sc_softintr = softint_establish(SOFTINT_NET, xennet_softstart, sc);
        if (sc->sc_softintr == NULL)
-               panic(" xennet: can't establish soft interrupt");
+               panic("%s: can't establish soft interrupt",
+                       device_xname(self));
 
        /* initialise shared structures and tell backend that we are ready */
        xennet_xenbus_resume(sc);
@@ -690,8 +691,8 @@
                KASSERT(req->txreq_id ==
                    RING_GET_RESPONSE(&sc->sc_tx_ring, i)->id);
                if (__predict_false(xengnt_status(req->txreq_gntref))) {
-                       printf("%s: grant still used by backend\n",
-                           device_xname(sc->sc_dev));
+                       aprint_verbose_dev(sc->sc_dev,
+                                          "grant still used by backend\n");
                        sc->sc_tx_ring.rsp_cons = i;
                        goto end;
                }
@@ -706,7 +707,7 @@
                SLIST_INSERT_HEAD(&sc->sc_txreq_head, req, txreq_next);
        }
        sc->sc_tx_ring.rsp_cons = resp_prod;
-       /* set new event and check fopr race with rsp_cons update */
+       /* set new event and check for race with rsp_cons update */
        sc->sc_tx_ring.sring->rsp_event = 
            resp_prod + ((sc->sc_tx_ring.sring->req_prod - resp_prod) >> 1) + 1;
        ifp->if_timer = 0;
@@ -1103,9 +1104,7 @@
 void
 xennet_watchdog(struct ifnet *ifp)
 {
-       struct xennet_xenbus_softc *sc = ifp->if_softc;
-
-       printf("%s: xennet_watchdog\n", device_xname(sc->sc_dev));
+       aprint_verbose_ifnet(ifp, "xennet_watchdog\n");
 }
 
 int
Index: arch/xen/xen/shutdown_xenbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/shutdown_xenbus.c,v
retrieving revision 1.4
diff -u -u -r1.4 shutdown_xenbus.c
--- arch/xen/xen/shutdown_xenbus.c      22 Nov 2007 16:17:08 -0000      1.4
+++ arch/xen/xen/shutdown_xenbus.c      23 Oct 2008 22:32:17 -0000
@@ -148,10 +148,10 @@
 
        if (sysmon_pswitch_register(&xenbus_power) != 0 ||
            sysmon_pswitch_register(&xenbus_reset) != 0) {
-               printf("%s: unable to register with sysmon\n", __func__);
+               aprint_error("%s: unable to register with sysmon\n", __func__);
                return;
        }
        if (register_xenbus_watch(&xenbus_shutdown_watch)) {
-               printf("%s: unable to watch control/shutdown\n", __func__);
+               aprint_error("%s: unable to watch control/shutdown\n", 
__func__);
        }
 }
Index: arch/xen/xen/xbd_xenbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/xbd_xenbus.c,v
retrieving revision 1.30
diff -u -u -r1.30 xbd_xenbus.c
--- arch/xen/xen/xbd_xenbus.c   5 Jul 2008 19:06:01 -0000       1.30
+++ arch/xen/xen/xbd_xenbus.c   23 Oct 2008 22:32:18 -0000
@@ -57,6 +57,7 @@
 
 #include <xen/xen3-public/io/ring.h>
 #include <xen/xen3-public/io/blkif.h>
+#include <xen/xen3-public/io/protocols.h>
 
 #include <xen/granttables.h>
 #include <xen/xenbus.h>
@@ -78,7 +79,7 @@
 
 struct xbd_req {
        SLIST_ENTRY(xbd_req) req_next;
-       uint16_t req_id; /* ID passed to backed */
+       uint16_t req_id; /* ID passed to backend */
        grant_ref_t req_gntref[BLKIF_MAX_SEGMENTS_PER_REQUEST];
        int req_nr_segments; /* number of segments in this request */
        struct buf *req_bp; /* buffer associated with this request */
@@ -200,7 +201,7 @@
 #endif
 
        config_pending_incr();
-       printf(": Xen Virtual Block Device Interface\n");
+       aprint_normal(": Xen Virtual Block Device Interface\n");
 
        sc->sc_dev = self;
 
@@ -286,6 +287,7 @@
                disk_destroy(&sc->sc_dksc.sc_dkdev);
        }
 
+       hypervisor_mask_event(sc->sc_evtchn);
        event_remove_handler(sc->sc_evtchn, &xbd_handler, sc);
        while (xengnt_status(sc->sc_ring_gntref)) {
                tsleep(xbd_xenbus_detach, PRIBIO, "xbd_ref", hz/2);
@@ -346,6 +348,12 @@
                errmsg = "writing event channel";
                goto abort_transaction;
        }
+       error = xenbus_printf(xbt, sc->sc_xbusd->xbusd_path,
+                       "protocol", "%s", XEN_IO_PROTO_ABI_NATIVE);
+       if (error) {
+               errmsg = "writing protocol";
+               goto abort_transaction;
+       }
        error = xenbus_switch_state(sc->sc_xbusd, xbt, XenbusStateInitialised);
        if (error) {
                errmsg = "writing frontend XenbusStateInitialised";
@@ -423,9 +431,9 @@
                /* try to read the disklabel */
                dk_getdisklabel(sc->sc_di, &sc->sc_dksc, 0 /* XXX ? */);
                format_bytes(buf, sizeof(buf), sc->sc_sectors * sc->sc_secsize);
-               printf("%s: %s, %d bytes/sect x %" PRIu64 " sectors\n",
-                   device_xname(sc->sc_dev), buf, (int)pdg->pdg_secsize,
-                   sc->sc_xbdsize);
+               aprint_verbose_dev(sc->sc_dev,
+                               "%s, %d bytes/sect x %" PRIu64 " sectors\n",
+                               buf, (int)pdg->pdg_secsize, sc->sc_xbdsize);
                /* Discover wedges on this disk. */
                dkwedge_discover(&sc->sc_dksc.sc_dkdev);
 
@@ -494,8 +502,8 @@
                for (seg = xbdreq->req_nr_segments - 1; seg >= 0; seg--) {
                        if (__predict_false(
                            xengnt_status(xbdreq->req_gntref[seg]))) {
-                               printf("%s: grant still used by backend\n",
-                                   device_xname(sc->sc_dev));
+                               aprint_verbose_dev(sc->sc_dev,
+                                       "grant still used by backend\n");
                                sc->sc_ring.rsp_cons = i;
                                xbdreq->req_nr_segments = seg + 1;
                                goto done;
@@ -506,8 +514,9 @@
                }
                if (rep->operation != BLKIF_OP_READ &&
                    rep->operation != BLKIF_OP_WRITE) {
-                       printf("%s: bad operation %d from backend\n",
-                            device_xname(sc->sc_dev), rep->operation);
+                       aprint_error_dev(sc->sc_dev,
+                                        "bad operation %d from backend\n",
+                                        rep->operation);
                                bp->b_error = EIO;
                                bp->b_resid = bp->b_bcount;
                                goto next;
Index: arch/xen/xen/xbdback_xenbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/xbdback_xenbus.c,v
retrieving revision 1.19
diff -u -u -r1.19 xbdback_xenbus.c
--- arch/xen/xen/xbdback_xenbus.c       16 Sep 2008 19:53:05 -0000      1.19
+++ arch/xen/xen/xbdback_xenbus.c       23 Oct 2008 22:32:19 -0000
@@ -546,7 +546,8 @@
                evop.u.bind_interdomain.remote_port = revtchn;
                err = HYPERVISOR_event_channel_op(&evop);
                if (err) {
-                       printf("blkback %s: can't get event channel: %d\n",
+                       aprint_error("blkback %s: "
+                           "can't get event channel: %d\n",
                            xbusd->xbusd_otherend, err);
                        xenbus_dev_fatal(xbusd, err,
                            "can't bind event channel", xbusd->xbusd_otherend);
@@ -557,7 +558,7 @@
                    xbdi->xbdi_domid, xbdi->xbdi_handle);
                event_set_handler(xbdi->xbdi_evtchn, xbdback_evthandler,
                    xbdi, IPL_BIO, evname);
-               printf("xbd backend 0x%x for domain %d "
+               aprint_verbose("xbd backend 0x%x for domain %d "
                    "using event channel %d, protocol %s\n", xbdi->xbdi_handle,
                    xbdi->xbdi_domid, xbdi->xbdi_evtchn, proto);
                hypervisor_enable_event(xbdi->xbdi_evtchn);
Index: arch/xen/xen/xengnt.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/xengnt.c,v
retrieving revision 1.8
diff -u -u -r1.8 xengnt.c
--- arch/xen/xen/xengnt.c       5 Sep 2008 13:37:24 -0000       1.8
+++ arch/xen/xen/xengnt.c       23 Oct 2008 22:32:19 -0000
@@ -137,10 +137,10 @@
        setup.frame_list = pages;
 
        if (HYPERVISOR_grant_table_op(GNTTABOP_setup_table, &setup, 1) != 0)
-               panic("xengnt_more_entries: setup table failed");
-       if (setup.status != 0) {
-               printf("xengnt_more_entries: setup table returned %d\n",
-                   setup.status);
+               panic("%s: setup table failed", __func__);
+       if (setup.status != GNTST_okay) {
+               aprint_error("%s: setup table returned %d\n",
+                   __func__, setup.status);
                free(pages, M_DEVBUF);
                return ENOMEM;
        }
@@ -149,10 +149,17 @@
            pages[gnt_nr_grant_frames],
            (char *)grant_table + gnt_nr_grant_frames * PAGE_SIZE));
 
+       /*
+        * map between grant_table addresses and the machine addresses of
+        * the grant table frames
+        */
        pmap_kenter_ma(((vaddr_t)grant_table) + gnt_nr_grant_frames * PAGE_SIZE,
            pages[gnt_nr_grant_frames] << PAGE_SHIFT, VM_PROT_WRITE);
 
-
+       /*
+        * add the grant entries associated to the last grant table frame
+        * and mark them as free
+        */
        for (i = gnt_nr_grant_frames * NR_GRANT_ENTRIES_PER_PAGE;
            i < nframes_new * NR_GRANT_ENTRIES_PER_PAGE;
            i++) {
@@ -165,6 +172,9 @@
        return 0;
 }
 
+/*
+ * Returns a reference to the first free entry in grant table
+ */
 static grant_ref_t
 xengnt_get_entry()
 {
@@ -192,6 +202,9 @@
        return entry;
 }
 
+/*
+ * Mark the grant table entry as free
+ */
 static void
 xengnt_free_entry(grant_ref_t entry)
 {
Index: arch/xen/xen/xennetback_xenbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/xennetback_xenbus.c,v
retrieving revision 1.23
diff -u -u -r1.23 xennetback_xenbus.c
--- arch/xen/xen/xennetback_xenbus.c    4 Jun 2008 12:41:42 -0000       1.23
+++ arch/xen/xen/xennetback_xenbus.c    23 Oct 2008 22:32:19 -0000
@@ -307,7 +307,7 @@
        /* create pseudo-interface */
        snprintf(xneti->xni_if.if_xname, IFNAMSIZ, "xvif%d.%d",
            (int)domid, (int)handle);
-       printf("%s: Ethernet address %s\n", ifp->if_xname,
+       aprint_verbose_ifnet(ifp, "Ethernet address %s\n",
            ether_sprintf(xneti->xni_enaddr));
        ifp->if_flags =
            IFF_BROADCAST|IFF_SIMPLEX|IFF_NOTRAILERS|IFF_MULTICAST;
@@ -357,7 +357,7 @@
                return EBUSY;
        }
 #endif
-       printf("%s: disconnecting\n", xneti->xni_if.if_xname);
+       aprint_verbose_ifnet(&xneti->xni_if, "disconnecting\n");
        hypervisor_mask_event(xneti->xni_evtchn);
        event_remove_handler(xneti->xni_evtchn, xennetback_evthandler, xneti);
        softint_disestablish(xneti->xni_softintr);
@@ -375,8 +375,8 @@
                err = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
                    &op, 1);
                if (err)
-                       printf("%s: unmap_grant_ref failed: %d\n",
-                           xneti->xni_if.if_xname, err);
+                       aprint_error_ifnet(&xneti->xni_if,
+                                       "unmap_grant_ref failed: %d\n", err);
        }
        if (xneti->xni_rxring.sring) {
                op.host_addr = xneti->xni_rx_ring_va;
@@ -385,8 +385,8 @@
                err = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
                    &op, 1);
                if (err)
-                       printf("%s: unmap_grant_ref failed: %d\n",
-                           xneti->xni_if.if_xname, err);
+                       aprint_error_ifnet(&xneti->xni_if,
+                                       "unmap_grant_ref failed: %d\n", err);
        }
        uvm_km_free(kernel_map, xneti->xni_tx_ring_va,
            PAGE_SIZE, UVM_KMF_VAONLY);
Index: arch/xen/xenbus/xenbus_comms.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xenbus/xenbus_comms.c,v
retrieving revision 1.8
diff -u -u -r1.8 xenbus_comms.c
--- arch/xen/xenbus/xenbus_comms.c      21 Oct 2008 15:46:32 -0000      1.8
+++ arch/xen/xenbus/xenbus_comms.c      23 Oct 2008 22:32:19 -0000
@@ -214,7 +214,7 @@
        return 0;
 }
 
-/* Set up interrupt handler off store event channel. */
+/* Set up interrupt handler of store event channel. */
 int
 xb_init_comms(device_t dev)
 {
@@ -226,11 +226,11 @@
        err = event_set_handler(xen_start_info.store_evtchn, wake_waiting,
            NULL, IPL_TTY, "xenbus");
        if (err) {
-               printf("XENBUS request irq failed %i\n", err);
+               aprint_error_dev(dev, "request irq failed %i\n", err);
                return err;
        }
        xenbus_irq = xen_start_info.store_evtchn;
-       printf("%s: using event channel %d\n", device_xname(dev), xenbus_irq);
+       aprint_verbose_dev(dev, "using event channel %d\n", xenbus_irq);
        hypervisor_enable_event(xenbus_irq);
        return 0;
 }
Index: arch/xen/xenbus/xenbus_comms.h
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xenbus/xenbus_comms.h,v
retrieving revision 1.4
diff -u -u -r1.4 xenbus_comms.h
--- arch/xen/xenbus/xenbus_comms.h      16 Apr 2008 18:41:48 -0000      1.4
+++ arch/xen/xenbus/xenbus_comms.h      23 Oct 2008 22:32:19 -0000
@@ -30,7 +30,7 @@
 #define _XENBUS_COMMS_H
 
 void xenbus_kernfs_init(void);
-int xs_init(void);
+int xs_init(device_t dev);
 int xb_init_comms(device_t dev);
 
 /* Low level routines. */
Index: arch/xen/xenbus/xenbus_probe.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xenbus/xenbus_probe.c,v
retrieving revision 1.24
diff -u -u -r1.24 xenbus_probe.c
--- arch/xen/xenbus/xenbus_probe.c      21 Oct 2008 21:55:44 -0000      1.24
+++ arch/xen/xenbus/xenbus_probe.c      23 Oct 2008 22:32:20 -0000
@@ -566,7 +566,7 @@
        xb_init_comms(xenbus_dev);
 
        /* Initialize the interface to xenstore. */
-       err = xs_init(); 
+       err = xs_init(xenbus_dev); 
        if (err) {
                aprint_error_dev(xenbus_dev,
                                "Error initializing xenstore comms: %i\n", err);
Index: arch/xen/xenbus/xenbus_xs.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xenbus/xenbus_xs.c,v
retrieving revision 1.14
diff -u -u -r1.14 xenbus_xs.c
--- arch/xen/xenbus/xenbus_xs.c 13 Mar 2008 22:19:39 -0000      1.14
+++ arch/xen/xenbus/xenbus_xs.c 23 Oct 2008 22:32:20 -0000
@@ -139,7 +139,7 @@
        if (len)
                *len = msg->hdr.len;
        body = msg->u.reply.body;
-       DPRINTK("read_reply: type %d body %s\n",
+       DPRINTK("read_reply: type %d body %s",
            msg->hdr.type, body);
 
        free(msg, M_DEVBUF);
@@ -219,7 +219,7 @@
 
        for (i = 0; i < num_vecs; i++) {
                DPRINTK("write iovect");
-               err = xb_write(iovec[i].iov_base, iovec[i].iov_len);;
+               err = xb_write(iovec[i].iov_base, iovec[i].iov_len);
                DPRINTK("write iovect err %d", err);
                if (err) {
                        mutex_exit(&xs_state.xs_lock);
@@ -746,7 +746,7 @@
                        simple_lock(&watch_events_lock);
                        SIMPLEQ_REMOVE_HEAD(&watch_events, msg_next);
                        simple_unlock(&watch_events_lock);
-                       DPRINTK("xenwatch_thread: got event\n");
+                       DPRINTK("xenwatch_thread: got event");
 
                        msg->u.watch.handle->xbw_callback(
                                msg->u.watch.handle,
@@ -794,7 +794,7 @@
        body[msg->hdr.len] = '\0';
 
        if (msg->hdr.type == XS_WATCH_EVENT) {
-               DPRINTK("process_msg: XS_WATCH_EVENT\n");
+               DPRINTK("process_msg: XS_WATCH_EVENT");
                msg->u.watch.vec = split(body, msg->hdr.len,
                                         &msg->u.watch.vec_size);
                if (msg->u.watch.vec == NULL) {
@@ -818,7 +818,7 @@
                splx(s);
                simple_unlock(&watches_lock);
        } else {
-               DPRINTK("process_msg: type %d body %s\n", msg->hdr.type, body);
+               DPRINTK("process_msg: type %d body %s", msg->hdr.type, body);
                    
                msg->u.reply.body = body;
                simple_lock(&xs_state.reply_lock);
@@ -845,7 +845,7 @@
 }
 
 int
-xs_init(void)
+xs_init(device_t dev)
 {
        int err;
 
@@ -855,13 +855,17 @@
 
        err = kthread_create(PRI_NONE, 0, NULL, xenwatch_thread,
            NULL, NULL, "xenwatch");
-       if (err)
-               printf("kthread_create(xenwatch): %d\n", err);
+       if (err) {
+               aprint_error_dev(dev, "kthread_create(xenwatch): %d\n", err);
+               return err;
+       }
 
        err = kthread_create(PRI_NONE, 0, NULL, xenbus_thread,
            NULL, NULL, "xenbus");
-       if (err)
-               printf("kthread_create(xenbus): %d\n", err);
+       if (err) {
+               aprint_error_dev(dev, "kthread_create(xenbus): %d\n", err);
+               return err;
+       }
 
        return 0;
 }


Home | Main Index | Thread Index | Old Index