17 Nov, 2010
1 commit
-
scripts/headers_install.pl prevents "__user" from being exported
to userspace headers, so just use compiler.h to make sure that
__user is defined and avoid the error.unifdef: linux-next-20101112/xx64/usr/include/xen/privcmd.h.tmp: 79: Premature EOF (#if line 33 depth 1)
Signed-off-by: Randy Dunlap
Cc: Jeremy Fitzhardinge
Cc: Konrad Rzeszutek Wilk
Cc: xen-devel@lists.xensource.com (moderated for non-subscribers)
Cc: virtualization@lists.osdl.org
Cc: Tony Finch
Signed-off-by: Jeremy Fitzhardinge
12 Nov, 2010
1 commit
-
Set VM_PFNMAP in the privcmd mmap file_op, rather than later in
xen_remap_domain_mfn_range when it is too late because
vma_wants_writenotify has already been called and vm_page_prot has
already been modified.Signed-off-by: Stefano Stabellini
Signed-off-by: Jeremy Fitzhardinge
30 Oct, 2010
1 commit
-
put_user() may fail. In this case propagate error code from
privcmd_ioctl_mmap_batch().Signed-off-by: Vasiliy Kulikov
Signed-off-by: Jeremy Fitzhardinge
21 Oct, 2010
12 commits
-
It has its uses in a domU as well as dom0. Xen will prevent an
unprivileged domain from doing anything untoward.Signed-off-by: Jeremy Fitzhardinge
-
This allows xenfs to be built as a module, previously it required flush_tlb_all
and arbitrary_virt_to_machine to be exported.Signed-off-by: Ian Campbell
Signed-off-by: Jeremy Fitzhardinge -
On error IOCTL_PRIVCMD_MMAPBATCH is expected to set the top nibble of
the effected MFN and return 0. Currently it leaves the MFN unmodified
and returns the number of failures. Therefore:- reimplement remap_domain_mfn_range() using direct
HYPERVISOR_mmu_update() calls and small batches. The xen_set_domain_pte()
interface does not report errors and since some failures are
expected/normal using the multicall infrastructure is too noisy.
- return 0 as expected
- writeback the updated MFN list to mmapbatch->arr not over mmapbatch,
smashing the caller's stack.
- remap_domain_mfn_range can be static.With this change I am able to start an HVM domain.
Signed-off-by: Ian Campbell
Cc: Jeremy FitzhardingeSigned-off-by: Jeremy Fitzhardinge
-
xen_store_interface is needed by xenfs, and xenfs may be a module.
[ Impact: build fix for modular xenfs ]
Signed-off-by: Jeremy Fitzhardinge
-
Test vma->vm_ops is our operations to make sure we created it.
We don't want to stomp on other random vmas.[ Impact: bugfix; prevent ioctl from affecting other mappings ]
Signed-off-by: Jeremy Fitzhardinge
-
Print more detail about privcmd mapping faults for debugging.
[ Impact: debug ]
Signed-off-by: Jeremy Fitzhardinge
-
I don't think it matters at all in this case (there's only one caller
which checks the return value), but may as well be strictly correct.[ Impact: cleanup ]
Signed-off-by: Jeremy Fitzhardinge
-
These are necessary to allow writeable mmap of the privcmd node to
succeed without being marked read-only for writenotify purposes. Which
in turn is necessary to allow mappings of foreign guest pages[ Impact: bugfix: allow writable mappings ]
Signed-off-by: Ian Campbell
Signed-off-by: Jeremy Fitzhardinge -
The privcmd interface in xenfs allows the tool stack in the privileged
domain to get fairly direct access to the hypervisor in order to do
various management things such as domain construction.[ Impact: new xenfs interface for privileged operations ]
Signed-off-by: Jeremy Fitzhardinge
-
Allow non-constant hypercall to be called, for privcmd.
[ Impact: make arbitrary hypercalls; needed for privcmd ]
Signed-off-by: Jeremy Fitzhardinge
-
Add xen_set_domain_pte() to allow setting a pte mapping a page from
another domain. The common case is to map from DOMID_IO, the pseudo
domain which owns all IO pages, but will also be used in the privcmd
interface to map other domain pages.[ Impact: new Xen-internal API for cross-domain mappings ]
Signed-off-by: Jeremy Fitzhardinge
-
These are used by the userspace xenstore daemon, which runs in dom0.
Xenstored is what's behind the xenfs "xenbus" filesystem.[ Impact: provide mapping and port to usermode for xenstore ]
Signed-off-by: Ian Campbell
Signed-off-by: Jeremy Fitzhardinge
15 Oct, 2010
4 commits
-
Tony Luck reports that the addition of the access_ok() check in commit
0eead9ab41da ("Don't dump task struct in a.out core-dumps") broke the
ia64 compile due to missing the necessary header file includes.Rather than add yet another include () to make everything
happy, just uninline the silly core dump helper functions and move the
bodies to fs/exec.c where they make a lot more sense.dump_seek() in particular was too big to be an inline function anyway,
and none of them are in any way performance-critical. And we really
don't need to mess up our include file headers more than they already
are.Reported-and-tested-by: Tony Luck
Signed-off-by: Linus Torvalds -
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
ehea: Fix a checksum issue on the receive path
net: allow FEC driver to use fixed PHY support
tg3: restore rx_dropped accounting
b44: fix carrier detection on bind
net: clear heap allocations for privileged ethtool actions
NET: wimax, fix use after free
ATM: iphase, remove sleep-inside-atomic
ATM: mpc, fix use after free
ATM: solos-pci, remove use after free
net/fec: carrier off initially to avoid root mount failure
r8169: use device model DMA API
r8169: allocate with GFP_KERNEL flag when able to sleep -
akiphie points out that a.out core-dumps have that odd task struct
dumping that was never used and was never really a good idea (it goes
back into the mists of history, probably the original core-dumping
code). Just remove it.Also do the access_ok() check on dump_write(). It probably doesn't
matter (since normal filesystems all seem to do it anyway), but he
points out that it's normally done by the VFS layer, so ...[ I suspect that we should possibly do "vfs_write()" instead of
calling ->write directly. That also does the whole fsnotify and write
statistics thing, which may or may not be a good idea. ]And just to be anal, do this all for the x86-64 32-bit a.out emulation
code too, even though it's not enabled (and won't currently even
compile)Reported-by: akiphie
Signed-off-by: Linus Torvalds
14 Oct, 2010
11 commits
-
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
ioat2: fix performance regression -
* 'for-2.6.36' of git://linux-nfs.org/~bfields/linux:
nfsd: fix BUG at fs/nfsd/nfsfh.h:199 on unlink -
…/git/tip/linux-2.6-tip
* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
ring-buffer: Fix typo of time extends per page
perf, MIPS: Support cross compiling of tools/perf for MIPS
perf: Fix incorrect copy_from_user() usage -
* master.kernel.org:/home/rmk/linux-2.6-arm:
ARM: relax ioremap prohibition (309caa9) for -final and -stable
ARM: 6440/1: ep93xx: DMA: fix channel_disable
cpuimx27: fix i2c bus selection
cpuimx27: fix compile when ULPI is selected
ARM: 6435/1: Fix HWCAP_TLS flag for ARM11MPCore/Cortex-A9
ARM: 6436/1: AT91: Fix power-saving in idle-mode on 926T processors
ARM: fix section mismatch warnings in Versatile Express
ARM: 6412/1: kprobes-decode: add support for MOVW instruction
ARM: 6419/1: mmu: Fix MT_MEMORY and MT_MEMORY_NONCACHED pte flags
ARM: 6416/1: errata: faulty hazard checking in the Store Buffer may lead to data corruption -
…/git/tmlind/linux-omap-2.6
* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
omap: iommu-load cam register before flushing the entry -
* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/radeon/kms: Silent spurious error message
drm/radeon/kms: fix bad cast/shift in evergreen.c
drm/radeon/kms: make TV/DFP table info less verbose
drm/radeon/kms: leave certain CP int bits enabled
drm/radeon/kms: avoid corner case issue with unmappable vram V2 -
…git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86, numa: For each node, register the memory blocks actually used
x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration order
x86, mce, therm_throt.c: Fix missing curly braces in error handling logic -
Commit 0793448 "DMAENGINE: generic channel status v2" changed the interface for
how dma channel progress is retrieved. It inadvertently exported an internal
helper function ioat_tx_status() instead of ioat_dma_tx_status(). The latter
polls the hardware to get the latest completion state, while the helper just
evaluates the current state without touching hardware. The effect is that we
end up waiting for completion timeouts or descriptor allocation errors before
the completion state is updated.iperf (before fix):
[SUM] 0.0-41.3 sec 364 MBytes 73.9 Mbits/seciperf (after fix):
[SUM] 0.0- 4.5 sec 499 MBytes 940 Mbits/secThis is a regression starting with 2.6.35.
Cc:
Cc: Dave Jiang
Cc: Jesse Brandeburg
Cc: Linus Walleij
Cc: Maciej Sosnowski
Reported-by: Richard Scobie
Signed-off-by: Dan Williams -
Currently we set all skbs with CHECKSUM_UNNECESSARY, even
those whose protocol we don't know. This patch just
add the CHECKSUM_COMPLETE tag for non TCP/UDP packets.Reported-by: Eric Dumazet
Signed-off-by: Breno Leitao
Signed-off-by: Jay Vosburgh
Signed-off-by: David S. Miller -
As of commit 43a9aa64a2f4330a9cb59aaf5c5636566bce067c "NFSD:
Fill in WCC data for REMOVE, RMDIR, MKNOD, and MKDIR", we sometimes call
fh_unlock on a filehandle that isn't fully initialized.We should fix up the callers, but as a quick fix it is also sufficient
just to remove this assertion.Reported-by: Marius Tolzmann
Cc: Chuck Lever
Signed-off-by: J. Bruce Fields -
At least one board using the FEC driver does not have a conventional
PHY attached to it, it is directly connected to a somewhat simple
ethernet switch (the board is the SnapGear/LITE, and the attached
4-port ethernet switch is a RealTek RTL8305). This switch does not
present the usual register interface of a PHY, it presents nothing.
So a PHY scan will find nothing - it finds ID's of 0 for each PHY
on the attached MII bus.After the FEC driver was changed to use phylib for supporting PHYs
it no longer works on this particular board/switch setup.Add code support to use a fixed phy if no PHY is found on the MII bus.
This is based on the way the cpmac.c driver solved this same problem.Signed-off-by: Greg Ungerer
Signed-off-by: David S. Miller
13 Oct, 2010
5 commits
-
... but produce a big warning about the problem as encouragement
for people to fix their drivers.Signed-off-by: Russell King
-
When channel_disable() is called, it disables per channel interrupts and
waits until channels state becomes STATE_STALL, and then disables the
channel. Now, if the DMA transfer is disabled while the channel is in
STATE_NEXT we will not wait anything and disable the channel immediately.
This seems to cause weird data corruption for example in audio transfers.Fix is to wait while we are in STATE_NEXT or STATE_ON and only then
disable the channel.Signed-off-by: Mika Westerberg
Acked-by: Ryan Mallon
Signed-off-by: Russell King -
* 'kvm-updates/2.6.36' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
KVM: x86: Move TSC reset out of vmcb_init
KVM: x86: Fix SVM VMCB reset -
Time stamps for the ring buffer are created by the difference between
two events. Each page of the ring buffer holds a full 64 bit timestamp.
Each event has a 27 bit delta stamp from the last event. The unit of time
is nanoseconds, so 27 bits can hold ~134 milliseconds. If two events
happen more than 134 milliseconds apart, a time extend is inserted
to add more bits for the delta. The time extend has 59 bits, which
is good for ~18 years.Currently the time extend is committed separately from the event.
If an event is discarded before it is committed, due to filtering,
the time extend still exists. If all events are being filtered, then
after ~134 milliseconds a new time extend will be added to the buffer.This can only happen till the end of the page. Since each page holds
a full timestamp, there is no reason to add a time extend to the
beginning of a page. Time extends can only fill a page that has actual
data at the beginning, so there is no fear that time extends will fill
more than a page without any data.When reading an event, a loop is made to skip over time extends
since they are only used to maintain the time stamp and are never
given to the caller. As a paranoid check to prevent the loop running
forever, with the knowledge that time extends may only fill a page,
a check is made that tests the iteration of the loop, and if the
iteration is more than the number of time extends that can fit in a page
a warning is printed and the ring buffer is disabled (all of ftrace
is also disabled with it).There is another event type that is called a TIMESTAMP which can
hold 64 bits of data in the theoretical case that two events happen
18 years apart. This code has not been implemented, but the name
of this event exists, as well as the structure for it. The
size of a TIMESTAMP is 16 bytes, where as a time extend is only
8 bytes. The macro used to calculate how many time extends can fit on
a page used the TIMESTAMP size instead of the time extend size
cutting the amount in half.The following test case can easily trigger the warning since we only
need to have half the page filled with time extends to trigger the
warning:# cd /sys/kernel/debug/tracing/
# echo function > current_tracer
# echo 'common_pid < 0' > events/ftrace/function/filter
# echo > trace
# echo 1 > trace_marker
# sleep 120
# cat traceEnabling the function tracer and then setting the filter to only trace
functions where the process id is negative (no events), then clearing
the trace buffer to ensure that we have nothing in the buffer,
then write to trace_marker to add an event to the beginning of a page,
sleep for 2 minutes (only 35 seconds is probably needed, but this
guarantees the bug), and then finally reading the trace which will
trigger the bug.This patch fixes the typo and prevents the false positive of that warning.
Reported-by: Hans J. Koch
Tested-by: Hans J. Koch
Cc: Thomas Gleixner
Cc: Stable Kernel
Signed-off-by: Steven Rostedt
12 Oct, 2010
5 commits
-
Changes:
v4: Fix the cosmetic issue of redundant dot-ops
v3: Change rmb() to use SYNC
v2: Include mips unistd.h and define rmb()/cpu_relax() in tools/perf/perf.hSigned-off-by: Deng-Cheng Zhu
Acked-by: Ralf Baechle
Cc: David Daney
Cc: Peter Zijlstra
Cc: Arnaldo Carvalho de Melo
Cc: Frederic Weisbecker
Cc: Paul Mackerras
Signed-off-by: Ingo Molnar -
I see the following error message in my kernel log from time to time:
radeon 0000:07:00.0: ffff88007c334000 reserve failed for wait
radeon 0000:07:00.0: ffff88007c334000 reserve failed for waitAfter investigation, it turns out that there's nothing to be afraid of
and everything works as intended. So remove the spurious log message.Signed-off-by: Jean Delvare
Reviewed-by: Jerome Glisse
Signed-off-by: Dave Airlie -
Missing parens.
fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=30718Reported-by: Dave Gilbert
Signed-off-by: Alex Deucher
Reviewed-by: Matt Turner
Cc: stable@kernel.org
Signed-off-by: Dave Airlie -
Make TV standard and DFP table revisions debug only.
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
These bits are used for internal communication and should
be left enabled. This may fix s/r issues on some systems.Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie