tmp_suning_uos_patched/Documentation
Youquan Song 6dd9a7c737 intel-iommu: Enable super page (2MiB, 1GiB, etc.) support
There are no externally-visible changes with this. In the loop in the
internal __domain_mapping() function, we simply detect if we are mapping:
  - size >= 2MiB, and
  - virtual address aligned to 2MiB, and
  - physical address aligned to 2MiB, and
  - on hardware that supports superpages.

(and likewise for larger superpages).

We automatically use a superpage for such mappings. We never have to
worry about *breaking* superpages, since we trust that we will always
*unmap* the same range that was mapped. So all we need to do is ensure
that dma_pte_clear_range() will also cope with superpages.

Adjust pfn_to_dma_pte() to take a superpage 'level' as an argument, so
it can return a PTE at the appropriate level rather than always
extending the page tables all the way down to level 1. Again, this is
simplified by the fact that we should never encounter existing small
pages when we're creating a mapping; any old mapping that used the same
virtual range will have been entirely removed and its obsolete page
tables freed.

Provide an 'intel_iommu=sp_off' argument on the command line as a
chicken bit. Not that it should ever be required.

==

The original commit seen in the iommu-2.6.git was Youquan's
implementation (and completion) of my own half-baked code which I'd
typed into an email. Followed by half a dozen subsequent 'fixes'.

I've taken the unusual step of rewriting history and collapsing the
original commits in order to keep the main history simpler, and make
life easier for the people who are going to have to backport this to
older kernels. And also so I can give it a more coherent commit comment
which (hopefully) gives a better explanation of what's going on.

The original sequence of commits leading to identical code was:

Youquan Song (3):
      intel-iommu: super page support
      intel-iommu: Fix superpage alignment calculation error
      intel-iommu: Fix superpage level calculation error in dma_pfn_level_pte()

David Woodhouse (4):
      intel-iommu: Precalculate superpage support for dmar_domain
      intel-iommu: Fix hardware_largepage_caps()
      intel-iommu: Fix inappropriate use of superpages in __domain_mapping()
      intel-iommu: Fix phys_pfn in __domain_mapping for sglist pages

Signed-off-by: Youquan Song <youquan.song@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2011-06-01 12:26:35 +01:00
..
ABI Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
accounting
acpi ACPI, APEI, Add PCIe AER error information printing support 2011-03-21 22:59:08 -04:00
aoe
arm Fix common misspellings 2011-03-31 11:26:23 -03:00
auxdisplay
blackfin
block Fix common misspellings 2011-03-31 11:26:23 -03:00
blockdev
cdrom
cgroups memcg: update documentation to describe usage_in_bytes 2011-04-28 11:28:21 -07:00
connector
console
cpu-freq [CPUFREQ] Add documentation for sampling_down_factor 2011-03-16 17:54:31 -04:00
cpuidle
cris
crypto
development-process docs: update the development process document 2011-03-25 14:30:31 -06:00
device-mapper Fix common misspellings 2011-03-31 11:26:23 -03:00
devicetree Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
DocBook Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2011-04-27 15:17:52 -07:00
driver-model
dvb Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
early-userspace
fault-injection
fb Fix common misspellings 2011-03-31 11:26:23 -03:00
filesystems Fix common misspellings 2011-03-31 11:26:23 -03:00
firmware_class
frv
hwmon hwmon: (adm1021) Clarify documentation regarding Xeon processors 2011-04-29 16:33:36 +02:00
i2c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2o Fix common misspellings 2011-03-31 11:26:23 -03:00
ia64 Fix common misspellings 2011-03-31 11:26:23 -03:00
ide
infiniband
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2011-04-18 13:29:03 -07:00
ioctl Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2011-03-24 09:50:13 -07:00
isdn Fix common misspellings 2011-03-31 11:26:23 -03:00
ja_JP
kbuild Fix common misspellings 2011-03-31 11:26:23 -03:00
kdump
ko_KR
kvm Fix common misspellings 2011-03-31 11:26:23 -03:00
laptops Documentation: fix minor typos/spelling 2011-04-04 17:51:47 -07:00
leds Documentation: consolidate leds files to leds/ subdir 2011-04-04 17:51:47 -07:00
lguest
m68k
make
mips Fix common misspellings 2011-03-31 11:26:23 -03:00
misc-devices Fix common misspellings 2011-03-31 11:26:23 -03:00
mmc
mn10300
mtd
namespaces
netlabel
networking Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
nfc
parisc
PCI Fix common misspellings 2011-03-31 11:26:23 -03:00
pcmcia
power Fix common misspellings 2011-03-31 11:26:23 -03:00
powerpc Fix common misspellings 2011-03-31 11:26:23 -03:00
pps
prctl
rapidio rapidio: add RapidIO documentation 2011-03-23 19:46:41 -07:00
RCU rcu: add documentation saying which RCU flavor to choose 2011-03-04 08:05:25 -08:00
s390 Documentation: fix minor typos/spelling 2011-04-04 17:51:47 -07:00
scheduler sched, doc: Beef up load balancing description 2011-03-31 13:00:35 +02:00
scsi Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
serial Fix common misspellings 2011-03-31 11:26:23 -03:00
sh
sound Merge branch 'fix/hda' into for-linus 2011-04-21 12:44:38 +02:00
sparc
spi Fix common misspellings 2011-03-31 11:26:23 -03:00
sysctl Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-03-18 10:37:40 -07:00
target [SCSI] tcm_mod_builder.py: Fix generated *_drop_nodeacl() handler 2011-03-23 11:36:45 -05:00
telephony Fix common misspellings 2011-03-31 11:26:23 -03:00
thermal
timers
trace Fix common misspellings 2011-03-31 11:26:23 -03:00
uml
usb
video4linux Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2011-04-27 15:17:52 -07:00
vm Fix common misspellings 2011-03-31 11:26:23 -03:00
w1 Fix common misspellings 2011-03-31 11:26:23 -03:00
watchdog Fix common misspellings 2011-03-31 11:26:23 -03:00
wimax
x86 move x86 specific oops=panic to generic code 2011-03-22 17:44:11 -07:00
zh_CN Fix spelling mistakes in Documentation/zh_CN/SubmittingPatches 2011-02-28 19:30:48 -08:00
.gitignore
00-INDEX Documentation: consolidate leds files to leds/ subdir 2011-04-04 17:51:47 -07:00
apparmor.txt
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt
cachetlb.txt
Changes Documentation/Changes: minor corrections 2011-03-22 17:44:17 -07:00
circular-buffers.txt
coccinelle.txt
CodingStyle Documentation/CodingStyle: flesh out if-else examples 2011-03-22 17:44:16 -07:00
cpu-hotplug.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
cpu-load.txt
cputopology.txt
credentials.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
devices.txt
DMA-API-HOWTO.txt
DMA-API.txt
DMA-attributes.txt
DMA-ISA-LPC.txt
dmaengine.txt
dontdiff
dynamic-debug-howto.txt Merge branch 'docs-next' of git://git.lwn.net/linux-2.6 2011-03-27 19:46:59 -07:00
edac.txt Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
eisa.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
email-clients.txt
feature-removal-schedule.txt asus-laptop: remove removed features from feature-removal-schedule.txt 2011-04-01 14:23:50 -04:00
flexible-arrays.txt flex_array: flex_array_prealloc takes a number of elements, not an end 2011-04-28 16:12:47 -04:00
futex-requeue-pi.txt
gcov.txt
gpio.txt
highuid.txt
HOWTO
hw_random.txt
hwspinlock.txt drivers: hwspinlock: add framework 2011-02-17 09:52:03 -08:00
init.txt
initrd.txt
intel_txt.txt
Intel-IOMMU.txt
io_ordering.txt
io-mapping.txt
iostats.txt Documentation/iostats.txt: bit-size reference etc. 2011-03-23 20:44:18 +01:00
IPMI.txt
IRQ-affinity.txt
IRQ.txt
irqflags-tracing.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt intel-iommu: Enable super page (2MiB, 1GiB, etc.) support 2011-06-01 12:26:35 +01:00
keys-request-key.txt KEYS: Add a new keyctl op to reject a key with a specified error code 2011-03-08 11:17:18 +11:00
keys-trusted-encrypted.txt
keys.txt KEYS: Add an iovec version of KEYCTL_INSTANTIATE 2011-03-08 11:17:22 +11:00
kmemcheck.txt
kmemleak.txt Documentation: update kmemleak arch. info 2011-04-04 17:51:46 -07:00
kobject.txt
kprobes.txt
kref.txt kref: Fix typo in kref documentation 2011-03-07 13:20:05 -08:00
ldm.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
logo.gif
logo.txt
magic-number.txt
Makefile
ManagementStyle
mca.txt
md.txt md: Update documentation for sync_min and sync_max entries 2011-04-20 15:40:01 +10:00
media-framework.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
memory-barriers.txt smp: Document transitivity for memory barriers. 2011-03-04 08:05:49 -08:00
memory-hotplug.txt
memory.txt
mono.txt
mutex-design.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
pi-futex.txt
pnp.txt
preempt-locking.txt
printk-formats.txt
prio_tree.txt
rbtree.txt
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt RTC: Fix up rtc.txt documentation to reflect changes to generic rtc layer 2011-03-09 11:25:10 -08:00
SAK.txt
SecurityBugs Fix common misspellings 2011-03-31 11:26:23 -03:00
SELinux.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
Smack.txt
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
SubmitChecklist
SubmittingDrivers Fix common misspellings 2011-03-31 11:26:23 -03:00
SubmittingPatches Fix common misspellings 2011-03-31 11:26:23 -03:00
svga.txt
sysfs-rules.txt
sysrq.txt
tomoyo.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
volatile-considered-harmful.txt
workqueue.txt workqueue: Document debugging tricks 2011-03-31 13:40:42 +02:00
xz.txt
zorro.txt