optional. The USB driver doesn't need this entrypoint because the state
machine driven by it is factored out of the driver code entirely into
xenidc.
Signed-off-by: Harry Butterworth butterwo@uk.ibm.com
This will make the drivers more robust to failure of the other end, and makes
current driver state more visible. It also allows us to bring very similar
pieces of code from the drivers together into the xenbus driver. This should
be the start of a fix to the problem with block and net device hotplugging,
because the code was previously confused about the difference between the
connection state of the kernel device layer, and the state of the xenbus
communication. This confusion is addressed here.
Much of this work is influenced by Rusty Russell's skeleton driver, recently
posted to xen-devel, as that piece made suggestions as to structure and
arrangement that have been taken on board, albeit pushed down into the xenbus
layer.
A new file xenbus_client.c has been added. This file implements the interface
between the xenbus layer and the layer specific to the driver. Access to
lower layers is still allowed for those who do not need all the facilities of
the new driver.
xenbus_dev_error has moved from xenbus_xs.c into xenbus_client.c, and
xenbus_dev_ok has been removed, in favour of xenbus_switch_state.
DevController.py now closes down a device by writing a change to the Closing
state on the backend, to allow the frontend time to close down properly. Its
also writes the frontend and backend details within the same transaction.
The timeout on the hotplug scripts has been cranked down from 2 minutes to 5
seconds.
The diagnose script has been updated to parse the new states.
The blktab and tpm drivers have yet to be ported to this structure.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
function defined in page.h.
For self-migration, I need the ability to trap writes to the p2m map
during migration, because I keep a dictionary mapping mfns to pfns,
which I use for remapping the page tables once I am on the other side.
Signed-off-by: Jacob Gorm Hansen <jacobg@diku.dk>
by 2.6 kernel. Now blkfront can be built as a kernel module.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
Signed-off-by: Jeremy Katz <katzj@redhat.com>
to 8. These interfaces are very cheap, so there's no problem having a few
spare. Anyone with more than 8 NICs can still use the kernel command line or
the module parameter line to pass a larger limit to this module.
Detail the kernel command line parameter for nloopbacks in the diagnostic in
network-bridge.
Closes bug #381.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
invcount, not i. Also, fix initialisation of pending_grant_handles:
it was happening too late, and the use of memset() was bogus.
Signed-off-by: Harry Butterworth <butterwo@uk.ibm.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
Watch events may get lost, the xenstored response races against the new
watch being added to the watch list in register_xenbus_watch(). Fixed
by adding the watch to the list unconditionally, and remove it in the
error case.
That one fixes the network issues I'm seeing. Due to the race the
"online" hotplug event for the vif backend was lost sometimes.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
an error code if the page is still in use, and gnttab_end_foreign_access takes
a page to free. This allows us to cope with frontends wanting to end access
while backends are still using pages by, eventually, placing the page and
grant table entry on a list, for freeing later. At the moment, the page and
grant table entry are leaked, with a diagnostic.
Tidied up netfront.c's clean-up code.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
idea in general to put statements with side-effects inside such a construct
(for example the BUG_ON() could be compiled away for non-debug builds).
The patch below fixes this for the drivers/xen tree.
I chose the general construct to store the respective return values in a
local var instead of an if (...) BUG(); because it looks like most of these
BUG_ON()'s need to be replaced by real error handling when going towards
production releases anyway, and then the local variable is going to be
needed anyway. (and besides the if construct tends to get unreable due to
the unlikely() etc).
Please apply.
Greetings,
Arjan van de Ven
- All even channels on xen/ia64 shares one common interrupt vector
- xen_start_info is initialized only after xen_init, so adjust
sequence to avoid access before initialization
Signed-off-by Kevin Tian <kevin.tian@intel.com>
/local/domain/0/backend/<devclass>/<dom>/<devid>/error, write them instead to
/local/domain/0/error/backend/<yada>. This is not the best place for them
perhaps, but it moves them out of the backend directory, on which the drivers
have a watch. This fixes the problem whereby writing an error will trigger a
watch, causing the error message to be written again, and repeat. Fixes bug
#286.
Signed-off-by: Ewan Mellor <ewan@xensource.com>