aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/Changes4
-rw-r--r--Documentation/CodingStyle18
-rw-r--r--Documentation/DMA-API.txt2
-rw-r--r--Documentation/DocBook/uio-howto.tmpl88
-rw-r--r--Documentation/IO-mapping.txt4
-rw-r--r--Documentation/block/biodoc.txt5
-rw-r--r--Documentation/cgroups/memcg_test.txt24
-rw-r--r--Documentation/filesystems/nfs-rdma.txt4
-rw-r--r--Documentation/filesystems/proc.txt28
-rw-r--r--Documentation/ja_JP/stable_kernel_rules.txt15
-rw-r--r--Documentation/lguest/Makefile2
-rw-r--r--Documentation/usb/dma.txt11
12 files changed, 179 insertions, 26 deletions
diff --git a/Documentation/Changes b/Documentation/Changes
index cb2b141b1c3e..b95082be4d5e 100644
--- a/Documentation/Changes
+++ b/Documentation/Changes
@@ -33,10 +33,12 @@ o Gnu make 3.79.1 # make --version
33o binutils 2.12 # ld -v 33o binutils 2.12 # ld -v
34o util-linux 2.10o # fdformat --version 34o util-linux 2.10o # fdformat --version
35o module-init-tools 0.9.10 # depmod -V 35o module-init-tools 0.9.10 # depmod -V
36o e2fsprogs 1.29 # tune2fs 36o e2fsprogs 1.41.4 # e2fsck -V
37o jfsutils 1.1.3 # fsck.jfs -V 37o jfsutils 1.1.3 # fsck.jfs -V
38o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs 38o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
39o xfsprogs 2.6.0 # xfs_db -V 39o xfsprogs 2.6.0 # xfs_db -V
40o squashfs-tools 4.0 # mksquashfs -version
41o btrfs-progs 0.18 # btrfsck
40o pcmciautils 004 # pccardctl -V 42o pcmciautils 004 # pccardctl -V
41o quota-tools 3.09 # quota -V 43o quota-tools 3.09 # quota -V
42o PPP 2.4.0 # pppd --version 44o PPP 2.4.0 # pppd --version
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
index 1875e502f872..72968cd5eaf3 100644
--- a/Documentation/CodingStyle
+++ b/Documentation/CodingStyle
@@ -483,17 +483,25 @@ values. To do the latter, you can stick the following in your .emacs file:
483 (* (max steps 1) 483 (* (max steps 1)
484 c-basic-offset))) 484 c-basic-offset)))
485 485
486(add-hook 'c-mode-common-hook
487 (lambda ()
488 ;; Add kernel style
489 (c-add-style
490 "linux-tabs-only"
491 '("linux" (c-offsets-alist
492 (arglist-cont-nonempty
493 c-lineup-gcc-asm-reg
494 c-lineup-arglist-tabs-only))))))
495
486(add-hook 'c-mode-hook 496(add-hook 'c-mode-hook
487 (lambda () 497 (lambda ()
488 (let ((filename (buffer-file-name))) 498 (let ((filename (buffer-file-name)))
489 ;; Enable kernel mode for the appropriate files 499 ;; Enable kernel mode for the appropriate files
490 (when (and filename 500 (when (and filename
491 (string-match "~/src/linux-trees" filename)) 501 (string-match (expand-file-name "~/src/linux-trees")
502 filename))
492 (setq indent-tabs-mode t) 503 (setq indent-tabs-mode t)
493 (c-set-style "linux") 504 (c-set-style "linux-tabs-only")))))
494 (c-set-offset 'arglist-cont-nonempty
495 '(c-lineup-gcc-asm-reg
496 c-lineup-arglist-tabs-only))))))
497 505
498This will make emacs go better with the kernel coding style for C 506This will make emacs go better with the kernel coding style for C
499files below ~/src/linux-trees. 507files below ~/src/linux-trees.
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt
index 52441694fe03..2a3fcc55e981 100644
--- a/Documentation/DMA-API.txt
+++ b/Documentation/DMA-API.txt
@@ -5,7 +5,7 @@
5 5
6This document describes the DMA API. For a more gentle introduction 6This document describes the DMA API. For a more gentle introduction
7phrased in terms of the pci_ equivalents (and actual examples) see 7phrased in terms of the pci_ equivalents (and actual examples) see
8DMA-mapping.txt 8Documentation/PCI/PCI-DMA-mapping.txt.
9 9
10This API is split into two pieces. Part I describes the API and the 10This API is split into two pieces. Part I describes the API and the
11corresponding pci_ API. Part II describes the extensions to the API 11corresponding pci_ API. Part II describes the extensions to the API
diff --git a/Documentation/DocBook/uio-howto.tmpl b/Documentation/DocBook/uio-howto.tmpl
index b787e4721c90..52e1b79ce0e6 100644
--- a/Documentation/DocBook/uio-howto.tmpl
+++ b/Documentation/DocBook/uio-howto.tmpl
@@ -42,6 +42,12 @@ GPL version 2.
42 42
43<revhistory> 43<revhistory>
44 <revision> 44 <revision>
45 <revnumber>0.7</revnumber>
46 <date>2008-12-23</date>
47 <authorinitials>hjk</authorinitials>
48 <revremark>Added generic platform drivers and offset attribute.</revremark>
49 </revision>
50 <revision>
45 <revnumber>0.6</revnumber> 51 <revnumber>0.6</revnumber>
46 <date>2008-12-05</date> 52 <date>2008-12-05</date>
47 <authorinitials>hjk</authorinitials> 53 <authorinitials>hjk</authorinitials>
@@ -312,6 +318,16 @@ interested in translating it, please email me
312 pointed to by addr. 318 pointed to by addr.
313 </para> 319 </para>
314</listitem> 320</listitem>
321<listitem>
322 <para>
323 <filename>offset</filename>: The offset, in bytes, that has to be
324 added to the pointer returned by <function>mmap()</function> to get
325 to the actual device memory. This is important if the device's memory
326 is not page aligned. Remember that pointers returned by
327 <function>mmap()</function> are always page aligned, so it is good
328 style to always add this offset.
329 </para>
330</listitem>
315</itemizedlist> 331</itemizedlist>
316 332
317<para> 333<para>
@@ -594,6 +610,78 @@ framework to set up sysfs files for this region. Simply leave it alone.
594 </para> 610 </para>
595</sect1> 611</sect1>
596 612
613<sect1 id="using_uio_pdrv">
614<title>Using uio_pdrv for platform devices</title>
615 <para>
616 In many cases, UIO drivers for platform devices can be handled in a
617 generic way. In the same place where you define your
618 <varname>struct platform_device</varname>, you simply also implement
619 your interrupt handler and fill your
620 <varname>struct uio_info</varname>. A pointer to this
621 <varname>struct uio_info</varname> is then used as
622 <varname>platform_data</varname> for your platform device.
623 </para>
624 <para>
625 You also need to set up an array of <varname>struct resource</varname>
626 containing addresses and sizes of your memory mappings. This
627 information is passed to the driver using the
628 <varname>.resource</varname> and <varname>.num_resources</varname>
629 elements of <varname>struct platform_device</varname>.
630 </para>
631 <para>
632 You now have to set the <varname>.name</varname> element of
633 <varname>struct platform_device</varname> to
634 <varname>"uio_pdrv"</varname> to use the generic UIO platform device
635 driver. This driver will fill the <varname>mem[]</varname> array
636 according to the resources given, and register the device.
637 </para>
638 <para>
639 The advantage of this approach is that you only have to edit a file
640 you need to edit anyway. You do not have to create an extra driver.
641 </para>
642</sect1>
643
644<sect1 id="using_uio_pdrv_genirq">
645<title>Using uio_pdrv_genirq for platform devices</title>
646 <para>
647 Especially in embedded devices, you frequently find chips where the
648 irq pin is tied to its own dedicated interrupt line. In such cases,
649 where you can be really sure the interrupt is not shared, we can take
650 the concept of <varname>uio_pdrv</varname> one step further and use a
651 generic interrupt handler. That's what
652 <varname>uio_pdrv_genirq</varname> does.
653 </para>
654 <para>
655 The setup for this driver is the same as described above for
656 <varname>uio_pdrv</varname>, except that you do not implement an
657 interrupt handler. The <varname>.handler</varname> element of
658 <varname>struct uio_info</varname> must remain
659 <varname>NULL</varname>. The <varname>.irq_flags</varname> element
660 must not contain <varname>IRQF_SHARED</varname>.
661 </para>
662 <para>
663 You will set the <varname>.name</varname> element of
664 <varname>struct platform_device</varname> to
665 <varname>"uio_pdrv_genirq"</varname> to use this driver.
666 </para>
667 <para>
668 The generic interrupt handler of <varname>uio_pdrv_genirq</varname>
669 will simply disable the interrupt line using
670 <function>disable_irq_nosync()</function>. After doing its work,
671 userspace can reenable the interrupt by writing 0x00000001 to the UIO
672 device file. The driver already implements an
673 <function>irq_control()</function> to make this possible, you must not
674 implement your own.
675 </para>
676 <para>
677 Using <varname>uio_pdrv_genirq</varname> not only saves a few lines of
678 interrupt handler code. You also do not need to know anything about
679 the chip's internal registers to create the kernel part of the driver.
680 All you need to know is the irq number of the pin the chip is
681 connected to.
682 </para>
683</sect1>
684
597</chapter> 685</chapter>
598 686
599<chapter id="userspace_driver" xreflabel="Writing a driver in user space"> 687<chapter id="userspace_driver" xreflabel="Writing a driver in user space">
diff --git a/Documentation/IO-mapping.txt b/Documentation/IO-mapping.txt
index 86edb61bdee6..78a440695e11 100644
--- a/Documentation/IO-mapping.txt
+++ b/Documentation/IO-mapping.txt
@@ -1,6 +1,6 @@
1[ NOTE: The virt_to_bus() and bus_to_virt() functions have been 1[ NOTE: The virt_to_bus() and bus_to_virt() functions have been
2 superseded by the functionality provided by the PCI DMA 2 superseded by the functionality provided by the PCI DMA interface
3 interface (see Documentation/DMA-mapping.txt). They continue 3 (see Documentation/PCI/PCI-DMA-mapping.txt). They continue
4 to be documented below for historical purposes, but new code 4 to be documented below for historical purposes, but new code
5 must not use them. --davidm 00/12/12 ] 5 must not use them. --davidm 00/12/12 ]
6 6
diff --git a/Documentation/block/biodoc.txt b/Documentation/block/biodoc.txt
index 3c5434c83daf..5d2480d33b43 100644
--- a/Documentation/block/biodoc.txt
+++ b/Documentation/block/biodoc.txt
@@ -186,8 +186,9 @@ a virtual address mapping (unlike the earlier scheme of virtual address
186do not have a corresponding kernel virtual address space mapping) and 186do not have a corresponding kernel virtual address space mapping) and
187low-memory pages. 187low-memory pages.
188 188
189Note: Please refer to DMA-mapping.txt for a discussion on PCI high mem DMA 189Note: Please refer to Documentation/PCI/PCI-DMA-mapping.txt for a discussion
190aspects and mapping of scatter gather lists, and support for 64 bit PCI. 190on PCI high mem DMA aspects and mapping of scatter gather lists, and support
191for 64 bit PCI.
191 192
192Special handling is required only for cases where i/o needs to happen on 193Special handling is required only for cases where i/o needs to happen on
193pages at physical memory addresses beyond what the device can support. In these 194pages at physical memory addresses beyond what the device can support. In these
diff --git a/Documentation/cgroups/memcg_test.txt b/Documentation/cgroups/memcg_test.txt
index 19533f93b7a2..523a9c16c400 100644
--- a/Documentation/cgroups/memcg_test.txt
+++ b/Documentation/cgroups/memcg_test.txt
@@ -1,6 +1,6 @@
1Memory Resource Controller(Memcg) Implementation Memo. 1Memory Resource Controller(Memcg) Implementation Memo.
2Last Updated: 2008/12/15 2Last Updated: 2009/1/19
3Base Kernel Version: based on 2.6.28-rc8-mm. 3Base Kernel Version: based on 2.6.29-rc2.
4 4
5Because VM is getting complex (one of reasons is memcg...), memcg's behavior 5Because VM is getting complex (one of reasons is memcg...), memcg's behavior
6is complex. This is a document for memcg's internal behavior. 6is complex. This is a document for memcg's internal behavior.
@@ -340,3 +340,23 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
340 # mount -t cgroup none /cgroup -t cpuset,memory,cpu,devices 340 # mount -t cgroup none /cgroup -t cpuset,memory,cpu,devices
341 341
342 and do task move, mkdir, rmdir etc...under this. 342 and do task move, mkdir, rmdir etc...under this.
343
344 9.7 swapoff.
345 Besides management of swap is one of complicated parts of memcg,
346 call path of swap-in at swapoff is not same as usual swap-in path..
347 It's worth to be tested explicitly.
348
349 For example, test like following is good.
350 (Shell-A)
351 # mount -t cgroup none /cgroup -t memory
352 # mkdir /cgroup/test
353 # echo 40M > /cgroup/test/memory.limit_in_bytes
354 # echo 0 > /cgroup/test/tasks
355 Run malloc(100M) program under this. You'll see 60M of swaps.
356 (Shell-B)
357 # move all tasks in /cgroup/test to /cgroup
358 # /sbin/swapoff -a
359 # rmdir /test/cgroup
360 # kill malloc task.
361
362 Of course, tmpfs v.s. swapoff test should be tested, too.
diff --git a/Documentation/filesystems/nfs-rdma.txt b/Documentation/filesystems/nfs-rdma.txt
index 44bd766f2e5d..85eaeaddd27c 100644
--- a/Documentation/filesystems/nfs-rdma.txt
+++ b/Documentation/filesystems/nfs-rdma.txt
@@ -251,7 +251,7 @@ NFS/RDMA Setup
251 251
252 Instruct the server to listen on the RDMA transport: 252 Instruct the server to listen on the RDMA transport:
253 253
254 $ echo rdma 2050 > /proc/fs/nfsd/portlist 254 $ echo rdma 20049 > /proc/fs/nfsd/portlist
255 255
256 - On the client system 256 - On the client system
257 257
@@ -263,7 +263,7 @@ NFS/RDMA Setup
263 Regardless of how the client was built (module or built-in), use this 263 Regardless of how the client was built (module or built-in), use this
264 command to mount the NFS/RDMA server: 264 command to mount the NFS/RDMA server:
265 265
266 $ mount -o rdma,port=2050 <IPoIB-server-name-or-address>:/<export> /mnt 266 $ mount -o rdma,port=20049 <IPoIB-server-name-or-address>:/<export> /mnt
267 267
268 To verify that the mount is using RDMA, run "cat /proc/mounts" and check 268 To verify that the mount is using RDMA, run "cat /proc/mounts" and check
269 the "proto" field for the given mount. 269 the "proto" field for the given mount.
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index bbebc3a43ac0..a87be42f8211 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -2027,6 +2027,34 @@ increase the likelihood of this process being killed by the oom-killer. Valid
2027values are in the range -16 to +15, plus the special value -17, which disables 2027values are in the range -16 to +15, plus the special value -17, which disables
2028oom-killing altogether for this process. 2028oom-killing altogether for this process.
2029 2029
2030The process to be killed in an out-of-memory situation is selected among all others
2031based on its badness score. This value equals the original memory size of the process
2032and is then updated according to its CPU time (utime + stime) and the
2033run time (uptime - start time). The longer it runs the smaller is the score.
2034Badness score is divided by the square root of the CPU time and then by
2035the double square root of the run time.
2036
2037Swapped out tasks are killed first. Half of each child's memory size is added to
2038the parent's score if they do not share the same memory. Thus forking servers
2039are the prime candidates to be killed. Having only one 'hungry' child will make
2040parent less preferable than the child.
2041
2042/proc/<pid>/oom_score shows process' current badness score.
2043
2044The following heuristics are then applied:
2045 * if the task was reniced, its score doubles
2046 * superuser or direct hardware access tasks (CAP_SYS_ADMIN, CAP_SYS_RESOURCE
2047 or CAP_SYS_RAWIO) have their score divided by 4
2048 * if oom condition happened in one cpuset and checked task does not belong
2049 to it, its score is divided by 8
2050 * the resulting score is multiplied by two to the power of oom_adj, i.e.
2051 points <<= oom_adj when it is positive and
2052 points >>= -(oom_adj) otherwise
2053
2054The task with the highest badness score is then selected and its children
2055are killed, process itself will be killed in an OOM situation when it does
2056not have children or some of them disabled oom like described above.
2057
20302.13 /proc/<pid>/oom_score - Display current oom-killer score 20582.13 /proc/<pid>/oom_score - Display current oom-killer score
2031------------------------------------------------------------- 2059-------------------------------------------------------------
2032 2060
diff --git a/Documentation/ja_JP/stable_kernel_rules.txt b/Documentation/ja_JP/stable_kernel_rules.txt
index b3ffe870de33..14265837c4ce 100644
--- a/Documentation/ja_JP/stable_kernel_rules.txt
+++ b/Documentation/ja_JP/stable_kernel_rules.txt
@@ -12,11 +12,11 @@ file at first.
12 12
13================================== 13==================================
14これは、 14これは、
15linux-2.6.24/Documentation/stable_kernel_rules.txt 15linux-2.6.29/Documentation/stable_kernel_rules.txt
16の和訳です。 16の和訳です。
17 17
18翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > 18翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
19翻訳日: 2007/12/30 19翻訳日: 2009/1/14
20翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> 20翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com>
21校正者: 武井伸光さん、<takei at webmasters dot gr dot jp> 21校正者: 武井伸光さん、<takei at webmasters dot gr dot jp>
22 かねこさん (Seiji Kaneko) <skaneko at a2 dot mbn dot or dot jp> 22 かねこさん (Seiji Kaneko) <skaneko at a2 dot mbn dot or dot jp>
@@ -38,12 +38,15 @@ linux-2.6.24/Documentation/stable_kernel_rules.txt
38 - ビルドエラー(CONFIG_BROKENになっているものを除く), oops, ハング、デー 38 - ビルドエラー(CONFIG_BROKENになっているものを除く), oops, ハング、デー
39 タ破壊、現実のセキュリティ問題、その他 "ああ、これはダメだね"という 39 タ破壊、現実のセキュリティ問題、その他 "ああ、これはダメだね"という
40 ようなものを修正しなければならない。短く言えば、重大な問題。 40 ようなものを修正しなければならない。短く言えば、重大な問題。
41 - 新しい device ID とクオークも受け入れられる。
41 - どのように競合状態が発生するかの説明も一緒に書かれていない限り、 42 - どのように競合状態が発生するかの説明も一緒に書かれていない限り、
42 "理論的には競合状態になる"ようなものは不可。 43 "理論的には競合状態になる"ようなものは不可。
43 - いかなる些細な修正も含めることはできない。(スペルの修正、空白のクリー 44 - いかなる些細な修正も含めることはできない。(スペルの修正、空白のクリー
44 ンアップなど) 45 ンアップなど)
45 - 対応するサブシステムメンテナが受け入れたものでなければならない。
46 - Documentation/SubmittingPatches の規則に従ったものでなければならない。 46 - Documentation/SubmittingPatches の規則に従ったものでなければならない。
47 - パッチ自体か同等の修正が Linus のツリーに既に存在しなければならない。
48  Linus のツリーでのコミットID を -stable へのパッチ投稿の際に引用す
49 ること。
47 50
48-stable ツリーにパッチを送付する手続き- 51-stable ツリーにパッチを送付する手続き-
49 52
@@ -52,8 +55,10 @@ linux-2.6.24/Documentation/stable_kernel_rules.txt
52 - 送信者はパッチがキューに受け付けられた際には ACK を、却下された場合 55 - 送信者はパッチがキューに受け付けられた際には ACK を、却下された場合
53 には NAK を受け取る。この反応は開発者たちのスケジュールによって、数 56 には NAK を受け取る。この反応は開発者たちのスケジュールによって、数
54 日かかる場合がある。 57 日かかる場合がある。
55 - もし受け取られたら、パッチは他の開発者たちのレビューのために 58 - もし受け取られたら、パッチは他の開発者たちと関連するサブシステムの
56 -stable キューに追加される。 59 メンテナーによるレビューのために -stable キューに追加される。
60 - パッチに stable@kernel.org のアドレスが付加されているときには、それ
61 が Linus のツリーに入る時に自動的に stable チームに email される。
57 - セキュリティパッチはこのエイリアス (stable@kernel.org) に送られるべ 62 - セキュリティパッチはこのエイリアス (stable@kernel.org) に送られるべ
58 きではなく、代わりに security@kernel.org のアドレスに送られる。 63 きではなく、代わりに security@kernel.org のアドレスに送られる。
59 64
diff --git a/Documentation/lguest/Makefile b/Documentation/lguest/Makefile
index 725eef81cd48..1f4f9e888bd1 100644
--- a/Documentation/lguest/Makefile
+++ b/Documentation/lguest/Makefile
@@ -1,5 +1,5 @@
1# This creates the demonstration utility "lguest" which runs a Linux guest. 1# This creates the demonstration utility "lguest" which runs a Linux guest.
2CFLAGS:=-Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include 2CFLAGS:=-Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE
3LDLIBS:=-lz 3LDLIBS:=-lz
4 4
5all: lguest 5all: lguest
diff --git a/Documentation/usb/dma.txt b/Documentation/usb/dma.txt
index e8b50b7de9d9..cfdcd16e3abf 100644
--- a/Documentation/usb/dma.txt
+++ b/Documentation/usb/dma.txt
@@ -6,8 +6,9 @@ in the kernel usb programming guide (kerneldoc, from the source code).
6API OVERVIEW 6API OVERVIEW
7 7
8The big picture is that USB drivers can continue to ignore most DMA issues, 8The big picture is that USB drivers can continue to ignore most DMA issues,
9though they still must provide DMA-ready buffers (see DMA-mapping.txt). 9though they still must provide DMA-ready buffers (see
10That's how they've worked through the 2.4 (and earlier) kernels. 10Documentation/PCI/PCI-DMA-mapping.txt). That's how they've worked through
11the 2.4 (and earlier) kernels.
11 12
12OR: they can now be DMA-aware. 13OR: they can now be DMA-aware.
13 14
@@ -62,8 +63,8 @@ and effects like cache-trashing can impose subtle penalties.
62 force a consistent memory access ordering by using memory barriers. It's 63 force a consistent memory access ordering by using memory barriers. It's
63 not using a streaming DMA mapping, so it's good for small transfers on 64 not using a streaming DMA mapping, so it's good for small transfers on
64 systems where the I/O would otherwise thrash an IOMMU mapping. (See 65 systems where the I/O would otherwise thrash an IOMMU mapping. (See
65 Documentation/DMA-mapping.txt for definitions of "coherent" and "streaming" 66 Documentation/PCI/PCI-DMA-mapping.txt for definitions of "coherent" and
66 DMA mappings.) 67 "streaming" DMA mappings.)
67 68
68 Asking for 1/Nth of a page (as well as asking for N pages) is reasonably 69 Asking for 1/Nth of a page (as well as asking for N pages) is reasonably
69 space-efficient. 70 space-efficient.
@@ -93,7 +94,7 @@ WORKING WITH EXISTING BUFFERS
93Existing buffers aren't usable for DMA without first being mapped into the 94Existing buffers aren't usable for DMA without first being mapped into the
94DMA address space of the device. However, most buffers passed to your 95DMA address space of the device. However, most buffers passed to your
95driver can safely be used with such DMA mapping. (See the first section 96driver can safely be used with such DMA mapping. (See the first section
96of DMA-mapping.txt, titled "What memory is DMA-able?") 97of Documentation/PCI/PCI-DMA-mapping.txt, titled "What memory is DMA-able?")
97 98
98- When you're using scatterlists, you can map everything at once. On some 99- When you're using scatterlists, you can map everything at once. On some
99 systems, this kicks in an IOMMU and turns the scatterlists into single 100 systems, this kicks in an IOMMU and turns the scatterlists into single