is slightly more informative and mirrors the 'feature-rx-copy' name
which communicates the feature in the other direction (back->front).
Signed-off-by: Keir Fraser <keir@xensource.com>
When the netfront driver is resumed the features are renegotiated with
the backend. However, I forgot take into account the status of the TX
checksum setting. When TX checksum is disabled by the user, we cannot
enable SG or TSO since both require checksum offload. This patch
makes
xennet check the checksum setting before renegotiating SG or TSO.
This bug was fixed thanks to a report from Anton Burtsev.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Some drivers (ie the e1000) hand up packets with the header in
the main area and the data in a fragment. Unless there are
multiple references on any of the data, we don't need to
make a full copy of those packets.
Signed-off-by: Emmanuel Ackaouy <ack@xensource.com>
This fixes
- one instance of using XEN_BLOCK_EVENTS where XEN_UNBLOCK_EVENTS was
meant
- four instances of left-over cli-s that should have been replaced
with XEN_BLOCK_EVENTS
- one instance of slightly wrong placement (without resulting in ill
behavior, but needlessly making the diff to native more complex)
Signed-off-by: Jan Beulich <jbeulich@novell.com>
This changeset is from upstream Linux. We need it so Xen users
using NAT are not unnecessarily alarmed by these WARN_ON errors
especially since they're not in a position to do anything about
it. Original changelog:
[NET]: Kill the WARN_ON() calls for checksum fixups.
We have a more complete solution in the works, involving
the seperation of CHECKSUM_HW on input vs. output, and
having netfilter properly do incremental checksums.
But that is a very involved patch and is thus 2.6.19
material.
What we have now is infinitely better than the past,
wherein all TSO packets were dropped due to corrupt
checksums as soon at the NAT module was loaded. At
least now, the checksums do get fixed up, it just
isn't the cleanest nor most optimal solution.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Split the bits of page.h which are needed by PV-on-HVM drivers out
into a separate header file, so that it's a bit easier to get the xenolinux
machine address functions when compiled against a native kernel.
Signed-off-by: Steven Smith <ssmith@xensource.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
By replacing dev_alloc_skb with alloc_skb we need to do the 16-byte
reservation ourselves. Also, it's unnecessary to align the size
when calling alloc_skb since the alignment is an implementation
detail of alloc_skb and it already takes care of it for us.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Thsi fixes problems where a driver is loaded from a script, and the
following parts of the script depend on devices having connected
by the time the modprobe/insmod returns.
Based on a tested patch from Rik van Riel at Red Hat.
Signed-off-by: Keir Fraser <keir@xensource.com>
I cannot think of any circumstance that the Xen console device would
not have CON_ENABLED. With out this, DomUs that panic() before the
init process has started (and maybe even after) do not get output hi
priority log_levels (like panic()) from LOG_BUF().
Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
This backend use a slot per pci device. Contrary to vpci two functions from
one slot appear as two slots. This is useful on ia64 because it doesn't scan
functions > 0 if function 0 does not exist.
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
Because the backend brings up the interface long before the frontend
has booted up, it is possible that by the time we get here we already
have packets queued up for processing.
If we don't process them here, we may delay them more than what is
necessary. Worse yet, it is possible to miss the notification
interrupt from the backend in such a way that we never get another
one until we bring the interface down and up.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Each HVM domain has a space of HVM parameters associated with it,
and these can be manipulated via a new hvm_op hypercall. This means
that the hypervisor no longer needs to parse the hvm_info table, so
remove that code.
Signed-off-by: Steven Smith <ssmith@xensource.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
It does this by intercepting XS_WATCH requests written
to /proc/xen/xenbus and then re-submitting the request to the
in-kernel xenstore interface, in
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c. When a callback
occurs, an in-kernel function is invoked, which then reconstructs a
response in the format expected by userspace, and sends this response
through /proc/xen/xenbus.
It was necessary to add some supporting infrastructure to
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c, such as an
additional mutex to protect the response queue and a list of active
watches associated with each connection.
Signed-off-by: Michael LeMay <mdlemay@epoch.ncsc.mil>
The for loop in pcistub_match_one will loop forever if the
dev->bus->self links to itself at the uppermost bridge. Adding a
check to prevent linking back in on itself prevents this.
Signed-off-by: Jon Mason <jdmason@us.ibm.com>
This fixes a bug whereby foreign pages were freed by the unpin, which
then become owned by the local domain before it destroys its ptes.
It therefore (erroneously) detects the mappings as local and so
updates reference counts, leading to crashes.
Signed-off-by: Keir Fraser <keir@xensource.com>
Rewrite utils.c patch to be less ugly:
do not set area->phys_addr, recompute phys_addr in free_vm_area.
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
This patch adds TSO transmission support to the backend.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Disable for now, as domU->dom0 direction.
Signed-off-by: Keir Fraser <keir@xensource.com>
This patch adds TCP Segmentation Offload (TSO) support to the
frontend.
It also advertises this fact through xenbus so that the frontend can
detect this and send through TSO requests only if it is supported.
This is done using an extra request slot which is indicated by a flag
in the first slot. In future checksum offload can be done in the same
way.
Even though only TSO is supported for now the code actually supports
GSO so it can be applied to any other protocol. The only missing bit
is the detection of host support for a specific GSO protocol. Once
that is added we can advertise all supported protocols to the guest.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Disable for now, as in domU->dom0 direction.
Signed-off-by: Keir Fraser <keir@xensource.com>