have been connected.
Make sure we connect only once; avoid getting disk attached multiple times
when there are multiple block devices configured (the xenbus seems to call
the callbacks for all xbd when each of them comes up).
That time is used by ~all domUs when they boot (or resume), and Linux by
default will pin the local clock to it; so, it's useful to correct its
drift as best we can. A sysctl (machdep.xen_timepush_ticks) has been
added to allow changing the interval or disabling this feature.
The rest of suspend/resume isn't there yet, but the parts that touch
regular usage have been tested. Discussed on port-xen on 2006-04-25;
approved by bouyer@.
triggered by recent xen3 hypervisor or tools): check sc->polling in
xencons_handler() and just return if set. Also, run xenconscn_getc() and putc()
at spltty().
While there, mark xencons_interface as volatile and use __UNVOLATILE() where
appropriate; and update the pointers in xencons_handler() if xenconscn_getc()
changed them (avoids replaying ddb commands in shell if ddb got called
by the magic string).
the rules due to needing to conditionally postprocess the HAL object file.
Macppc needs a a non-ELF HAL (EABI) object, so take care of that by default
in the atheros include file.
http://mail-index.netbsd.org/tech-net/2006/03/15/0000.html.
The new layout almost precisely matches FreeBSD, and should make
future imports much easier.
At the same time, import the current 0.9.16.16 HAL from FreeBSD. According
to sam@, this is the proper version we should be using.
of CPU_MAXFAMILY. This effectively causes to downgrade to i386 class
instead of a nonexistant class, and overrunning classnames[] by one.
Coverity ID 1472.
- keep a linked list of xenbus_device in the xenbus_infrastructure, and
keep a pointer to struct device for each xenbus_device
- xenbus_probe_device_type(): check that the device is not already attached
- when we get a frontend_changed callback, call xenbus_probe_device_type()
- When a device changes to state XenbusStateClosed, config_detach() it
and free the structures.
While there, move xbusd_path[] to the end of struct xenbus_device, and
allocate only the space needed to store the path. Garbage-collect
struct xenbus_driver, it's not needed.
in xbdstart(), check the sector number and transfer size against the
size of the xbd; if we issue an out of bound request the linux xbd backend
will fail to unmap the request, and xbd hangs up.
assertion in uvm
- xbd_open(): check that the device exists before calling dk_open(). Fix
a null pointer dereference when trying to open a unconfigured xbd.
Should fix 2 issues reported by Stephane Bortzmeyer on port-xen.
reality -- the memory taken by the kernel image should be counted in the
former, but not the latter, as is the case on other ports.
Discussed on port-xen; approved by bouyer@.