When you generate non-linear skb's as netback does, it is up to you
to ensure that truesize reflects the size of paged part of the skb.
Otherwise socket memory accounting in Linux falls apart.
Thanks to the new check that David Miller added to TCP we were able
to catch this bug.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
- moves the TPM frontend completely into the char/tpm directory where it
is a plug-in to the generic TPM driver
- removes a now obsolete include file
- adapts part of the documentation
- fixes some locking problems where copy_to/from_user was called with
IRQs blocked
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
If a transaction end command fails, the semaphore which keeps track
of whether we're in a transaction or not was not getting updated.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
copy_from/to_user while preventing interrupts and fix allocation of
memory from within a task and other issues.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
operation automatically gets you a fresh page at the same
pseudo-physical address as Keir suggested.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
interface (the legacy hypercalls would break if subcommands with large
argument structures were added, as it would grow the size of the
union of all argument structures).
Also, based on a patch from Kevin Tian, add a new physdev op to
signal EOI for a particular irq.
Signed-off-by: Keir Fraser <keir@xensource.com>
any more. xen/ia64 dom0 vp model is a big change so that xen/ia64
with the old model (P=M) still remains as the compile option.
Hopefully the work around will be eliminated in the future completely.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
of the structures on the capability list. Specifically, this patch adds
support for reading data through the Vital Product Data capability
structure and for manipulating power management of a card. A driver
domain is not allowed to enable Power Management Events (the PME trace
may be shared across devices in many domains), but it can put a device
in its control to sleep or query it for power usage statistics. This
code could possibly be expanded in the future to add support for AGP,
PCI-X, and MSI/MSIX (all of which are controlled through structures on
the capability list).
This patch also corrects some formatting issues in the PCI backend and
adds some comments to the code regarding permissive mode.
Signed-off-by: Ryan Wilson <hap9@epoch.ncsc.mil>
space handlers were making calls into ACPI code which uses semaphores.
Since semaphores can not be locked while atomic (because they could
sleep), I changed the way the PCI backend responds to requests from the
frontend. Previously, the virtual configuration space handlers ran in
the same context as the event channel interrupt handler (which was often
atomic if not always atomic). Now the interrupt handler schedules a
callback function (a bottom half) in the system work queue (keventd)
that will get called in process context at a slightly later time. This
allows the handlers in the virtual configuration space to run in process
context and to call any core PCI function regardless of whether it will
sleep or not.
Signed-off-by: Ryan Wilson <hap9@epoch.ncsc.mil>
issues needed to be resolved by executing certain code early/later
Restore the physical to machine array such that balloon-allocated
pages can be deallocated.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
use that saved value when handling the reply. Xenstored will leave the
message type intact, _except_ when returning an error, in which case it will
change the type to XS_ERROR. This meant that we failed to remove a
transaction from our internal list if xenstored returned EAGAIN, as we did not
realise that the message was XS_TRANSACTION_END. This manifested itself as
the intended behaviour until the connection was closed, at which point all of
those failed transactions would erroneously be aborted.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
1. All backend drivers can be disabled or modularised via
one config option.
2. Backend helper routines that are not specific to any particular driver
can be disabled or modularised based on this config option. In
particular this may allow backend drivers plus the service module
to be upgraded separate from the kernel core as and when the backend
interfaces change (and they will).
Signed-off-by: Keir Fraser <keir@xensource.com>
postcore_initcall) to a new late_initcall, so that it happens after the
drivers have initialised.
Fixes the reopened bug #549 (I hope).
Signed-off-by: Ewan Mellor <ewan@xensource.com>
to frontend driver. Otherwise the kernel thread may crash trying
to access the non-existent shared ring.
Signed-off-by: Keir Fraser <keir@xensource.com>
paravirtualized and fully virtualized. This approach uses the new
sched_op to handle other domains than the current domain. The new
code, SCHEDOP_remote_shutdown, is very much like SCHEDOP_shutdown, but
is called with the id of the domain which is to be shut down. This
allows fully virtualized shutdown and para-virtualized shutdown to be
identical from that point forward.
A paravirtualized domain uses sched_op to shut down and set the reason
code. This will send a VIRQ_DOM_EXC, which can be handled in dom0 by
control software. In some ways, this resembles SIGCHILD/waitpid, and
is a reasonable model.
The fully virtualized case has qemu invoke xm directly. This is a
different path than paravirtualized. It also removes decision and
policy making choices from the rest of the control software and places
it within qemu. When any dom0 logic eventually gets a VIRQ_DOM_EXC,
the information about the domain is gone having been destroyed by xm.
A libxenctrl wrapper, xc_shutdown_domain has been added and qemu now
calls it.
As a freebie, #if 0 some very verbose logging code in qemu. Totally
unrelated, but as long as I was there...
Signed-off-by: Ben Thomas <ben@virtualiron.com>
1. Remove blkif->status field as it's really not needed.
2. Simplify connection logic.
3. Get rid of atomic_t io_pending. There's no need for
atomic r-m-w updates to the work-to-do flag, so replace
with an integer and add barriers where serialisation is
required.
Signed-off-by: Keir Fraser <keir@xensource.com>