linux/debian/patches/bugfix/all/stable/2.6.23.2.patch

694 lines
30 KiB
Diff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

diff --git a/Documentation/ja_JP/HOWTO b/Documentation/ja_JP/HOWTO
index 9f08dab..d9d832c 100644
--- a/Documentation/ja_JP/HOWTO
+++ b/Documentation/ja_JP/HOWTO
@@ -1,4 +1,4 @@
-<2D>ソNOTE:
+NOTE:
This is a version of Documentation/HOWTO translated into Japanese.
This document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com>
and the JF Project team <www.linux.or.jp/JF>.
@@ -11,14 +11,14 @@ for non English (read: Japanese) speakers and is not intended as a
fork. So if you have any comments or updates for this file, please try
to update the original English file first.
-Last Updated: 2007/07/18
+Last Updated: 2007/09/23
==================================
縺薙縺ッ縲<EFBDAF>
-linux-2.6.22/Documentation/HOWTO
+linux-2.6.23/Documentation/HOWTO
縺ョ蜥瑚ィウ縺ァ縺吶€<E590B6>
鄙サ險ウ蝗」菴難シ<E99BA3> JF 繝励Ο繧ク繧ァ繧ッ繝<EFBDAF> < http://www.linux.or.jp/JF/ >
-鄙サ險ウ譌・<E8AD8C><EFBDA5> 2007/07/16
+鄙サ險ウ譌・<E8AD8C><EFBDA5> 2007/09/19
鄙サ險ウ閠<EFBDB3><EFBFBD> Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com>
譬。豁」閠<EFBDA3><EFBFBD> 譚セ蛟峨<EFBC86> <nbh--mats at nifty dot com>
蟆乗棊 髮<><E9ABAE>縺輔 (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp>
@@ -27,6 +27,7 @@ linux-2.6.22/Documentation/HOWTO
驥主哨縺輔s (Kenji Noguchi) <tokyo246 at gmail dot com>
豐ウ蜀<EFBDB3><EFBC86> (Takayoshi Kochi) <t-kochi at bq dot jp dot nec dot com>
蟯ゥ譛ャ縺輔s (iwamoto) <iwamoto.kn at ncos dot nec dot co dot jp>
+ 蜀<>伐縺輔 (Satoshi Uchida) <s-uchida at ap dot jp dot nec dot com>
==================================
Linux 繧ォ繝シ繝阪Ν髢狗匱縺ョ繧<EFBDAE>譁ケ
@@ -40,7 +41,7 @@ Linux 繧ォ繝シ繝阪Ν髢狗匱繧ウ繝溘Η繝九ユ繧」縺ィ蜈ア縺ォ豢サ蜍輔☆繧九d繧頑婿繧貞ュヲ縺
謇句勧縺代↓縺ェ繧翫縺吶€<E590B6>
繧ゅ縲√縺ョ繝峨く繝・繝。繝ウ繝医<E7B99D>縺ゥ縺薙°縺悟商縺上↑縺」縺ヲ縺<EFBDA6>◆蝣エ蜷医↓縺ッ縲√縺ョ繝峨く繝・繝。繝ウ
-繝医<E7B99D>€蠕後↓繝ェ繧ケ繝医縺溘Γ繝ウ繝<EFBDB3>リ繝シ縺ォ繝代ャ繝√騾√▲縺ヲ縺上□縺輔<EFBC9E>
+繝医<E7B99D>€蠕後↓繝ェ繧ケ繝医縺溘Γ繝ウ繝<EFBDB3>リ縺ォ繝代ャ繝√騾√▲縺ヲ縺上□縺輔<EFBC9E>
縺ッ縺倥a縺ォ
---------
@@ -59,7 +60,7 @@ Linux 繧ォ繝シ繝阪Ν髢狗匱繧ウ繝溘Η繝九ユ繧」縺ィ蜈ア縺ォ豢サ蜍輔☆繧九d繧頑婿繧貞ュヲ縺
繝阪Ν髢狗匱閠<E58CB1>↓縺ッ蠢<EFBDAF>ヲ√〒縺吶€ゅい繝シ繧ュ繝<EFBDAD>け繝√Ε蜷代¢縺ョ菴弱Ξ繝吶Ν驛ィ蛻<EFBDA8><E89BBB>髢狗匱繧偵☆繧九<E7B9A7>
縺ァ縺ェ縺代縺ー縲<EFBDB0>(縺ゥ繧薙↑繧「繝シ繧ュ繝<EFBDAD>け繝√Ε縺ァ繧<EFBDA7>)繧「繧サ繝ウ繝悶Μ(險ウ豕ィ: 險€<C280>)縺ッ蠢<EFBDAF>ヲ√≠繧<E289A0>
縺セ縺帙縲ゆサ・荳九<E88DB3>譛ャ縺ッ縲€隱槭<E99AB1>蜊∝<E89C8A>縺ェ遏・隴倥菴募ケエ繧ゅ<E7B9A7>邨碁ィ薙↓蜿悶▲縺ヲ莉」繧上繧ゅ<E7B9A7>
-縺ァ縺ッ縺ゅ縺セ縺帙縺後€∝ー代↑縺上→繧ゅΜ繝輔ぃ繝ャ繝ウ繧ケ縺ィ縺励※縺ッ縺<EFBDAF>譛ャ縺ァ縺吶€<E590B6>
+縺ァ縺ッ縺ゅ縺セ縺帙縺後€∝ー代↑縺上→繧ゅΜ繝輔ぃ繝ャ繝ウ繧ケ縺ィ縺励※縺ッ濶ッ縺<EFBDAF>悽縺ァ縺吶€<E590B6>
- "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]
-縲弱<E7B8B2>繝ュ繧ー繝ゥ繝溘Φ繧ー險€隱橸シ」隨ャ2迚医€<E58CBB>(B.W. 繧ォ繝シ繝九ワ繝ウ/D.M. 繝ェ繝<EFBDAA>メ繝シ闡<EFBDBC> 遏ウ逕ー譎エ荵<EFBDB4>ィウ) [蜈ア遶句<E981B6><EFBFBD>
- "Practical C Programming" by Steve Oualline [O'Reilly]
@@ -76,7 +77,7 @@ Linux 繧ォ繝シ繝阪Ν髢狗匱繧ウ繝溘Η繝九ユ繧」縺ィ蜈ア縺ォ豢サ蜍輔☆繧九d繧頑婿繧貞ュヲ縺
縺ィ縺阪←縺阪€√き繝シ繝阪Ν縺後ヤ繝シ繝ォ繝√ぉ繧、繝ウ繧<EFBDB3> C 險€隱樊僑蠑オ縺ォ鄂ョ縺<EFBDAE>※縺<E280BB>蜑肴署縺後←縺<E28690>
縺ェ縺」縺ヲ縺<EFBDA6>縺ョ縺九縺九縺ォ縺上縺薙→縺後≠繧翫€縺溘€∵ョ句ソオ縺ェ縺薙→縺ォ豎コ螳夂噪縺ェ繝ェ繝輔ぃ
繝ャ繝ウ繧ケ縺ッ蟄伜惠縺励縺帙縲よュ蝣ア繧貞セ励縺ォ縺ッ縲“cc 縺ョ info 繝壹<E7B99D>繧ク( info gcc )繧<>
-縺ソ縺ヲ縺上□縺輔<EFBC9E>
+隕九※縺上□縺輔<EFBC9E>
縺ゅ↑縺溘<E7B8BA>譌「蟄倥<E89F84>髢狗匱繧ウ繝溘Η繝九ユ繧」縺ィ荳€邱偵↓菴懈・ュ縺吶譁ケ豕輔蟄ヲ縺シ縺<EFBDBC>→縺励※縺<E280BB><EFBD8B>
縺ィ縺ォ逡呎э縺励※縺上□縺輔縲ゅ◎縺ョ繧ウ繝溘Η繝九ユ繧」縺ッ縲√さ繝シ繝<EFBDBC>ぅ繝ウ繧ー縲√せ繧ソ繧、繝ォ縲<EFBDAB>
@@ -92,7 +93,7 @@ Linux 繧ォ繝シ繝阪Ν髢狗匱繧ウ繝溘Η繝九ユ繧」縺ィ蜈ア縺ォ豢サ蜍輔☆繧九d繧頑婿繧貞ュヲ縺
Linux 繧ォ繝シ繝阪Ν縺ョ繧ス繝シ繧ケ繧ウ繝シ繝峨<E7B99D> GPL 繝ゥ繧、繧サ繝ウ繧ケ縺ョ荳九〒繝ェ繝ェ繝シ繧ケ縺輔縺ヲ縺<EFBDA6>
縺吶€ゅΛ繧、繧サ繝ウ繧ケ縺ョ隧ウ邏ー縺ォ縺、縺<EFBDA4>※縺ッ縲√た繝シ繧ケ繝<EFBDB9>Μ繝シ縺ョ繝。繧、繝ウ繝<EFBDB3>ぅ繝ャ繧ッ繝医Μ縺ォ蟄伜惠
-縺吶OPYING 縺ョ繝輔ぃ繧、繝ォ繧偵∩縺ヲ縺上□縺輔縲ゅ縺励Λ繧、繧サ繝ウ繧ケ縺ォ縺、縺<EFBDA4>※縺輔縺ォ雉ェ
+縺吶OPYING 縺ョ繝輔ぃ繧、繝ォ繧定ヲ九※縺上□縺輔縲ゅ縺励Λ繧、繧サ繝ウ繧ケ縺ォ縺、縺<EFBDA4>※縺輔縺ォ雉ェ
蝠上縺ゅ縺ー縲´inux Kernel 繝。繝シ繝ェ繝ウ繧ー繝ェ繧ケ繝医↓雉ェ蝠上☆繧九<E7B9A7>縺ァ縺ッ縺ェ縺上€√←縺<E28690>
豕募セ句ョカ縺ォ逶ク隲<EFBDB8>縺ヲ縺上□縺輔縲ゅΓ繝シ繝ェ繝ウ繧ー繝ェ繧ケ繝医<E7B99D>莠コ驕斐<E9A995>豕募セ句ョカ縺ァ縺ッ縺ェ縺上€∵ウ慕噪
蝠城。後↓縺、縺<EFBDA4>※縺ッ蠖シ繧峨<E7B9A7>螢ー譏弱<E8AD8F>縺ゅ※縺ォ縺吶縺ケ縺阪〒縺ッ縺ゅ縺セ縺帙<EFBD93>
@@ -109,7 +110,8 @@ Linux 繧ォ繝シ繝阪Ν繧ス繝シ繧ケ繝<EFBDB9>Μ繝シ縺ッ蟷<EFBDAF><EFBFBD><EFBC9E>峇縺ョ繝峨く繝・繝。繝ウ繝医
譁ー縺励繝峨く繝・繝。繝ウ繝医ヵ繧。繧、繝ォ繧りソス蜉<EFBDBD>縺吶縺薙→繧貞匡繧√縺吶€<E590B6>
繧ォ繝シ繝阪Ν縺ョ螟画峩縺後€√き繝シ繝阪Ν縺後Θ繝シ繧カ遨コ髢薙↓蜈ャ髢九縺ヲ縺<EFBDA6>繧、繝ウ繧ソ繝シ繝輔ぉ繧、繧ケ縺ョ
螟画峩繧貞シ輔″襍キ縺薙☆蝣エ蜷医€√◎縺ョ螟画峩繧定ェャ譏弱☆繧九<E7B9A7>繝九Η繧「繝ォ繝壹<E7B99D>繧ク縺ョ繝代ャ繝√<EFBD84><E8ABA0>
-繧偵<E7B9A7>繝九Η繧「繝ォ繝壹<E7B99D>繧ク縺ョ繝。繝ウ繝<EFBDB3>リ mtk-manpages@gmx.net 縺ォ騾√縺薙→繧貞匡繧√縺吶€<E590B6>
+繧偵<E7B9A7>繝九Η繧「繝ォ繝壹<E7B99D>繧ク縺ョ繝。繝ウ繝<EFBDB3>リ mtk-manpages@gmx.net 縺ォ騾√k縺薙→繧貞匡繧√∪
+縺吶€<E590B6>
莉・荳九<E88DB3>繧ォ繝シ繝阪Ν繧ス繝シ繧ケ繝<EFBDB9>Μ繝シ縺ォ蜷ォ縺セ繧後※縺<E280BB>隱ュ繧薙〒縺翫¥縺ケ縺阪ヵ繧。繧、繝ォ縺ョ荳€隕ァ縺ァ
<>-
@@ -117,7 +119,7 @@ Linux 繧ォ繝シ繝阪Ν繧ス繝シ繧ケ繝<EFBDB9>Μ繝シ縺ッ蟷<EFBDAF><EFBFBD><EFBC9E>峇縺ョ繝峨く繝・繝。繝ウ繝医
README
縺薙<E7B8BA>繝輔ぃ繧、繝ォ縺ッ Linux繧ォ繝シ繝阪Ν縺ョ邁。蜊倥↑閭梧勹縺ィ繧ォ繝シ繝阪Ν繧定ィュ螳<EFBDAD>(險ウ豕ィ
configure )縺励€∫函謌<E587BD>(險ウ豕ィ build )縺吶縺溘縺ォ蠢<EFBDAB>ヲ√↑縺薙→縺ッ菴輔°縺梧嶌縺九
- 縺ヲ縺<EFBDA6>縺吶€ゅき繝シ繝阪Ν縺ォ髢「縺励※蛻昴縺ヲ縺ョ莠コ縺ッ縺薙縺九繧ケ繧ソ繝シ繝医☆繧九→繧医縺ァ
+ 縺ヲ縺<EFBDA6>縺吶€ゅき繝シ繝阪Ν縺ォ髢「縺励※蛻昴縺ヲ縺ョ莠コ縺ッ縺薙縺九繧ケ繧ソ繝シ繝医☆繧九→濶ッ縺<EFBDAF>
縺励<EFBD87>€<EFBFBD>
Documentation/Changes
@@ -128,7 +130,7 @@ Linux 繧ォ繝シ繝阪Ν繧ス繝シ繧ケ繝<EFBDB9>Μ繝シ縺ッ蟷<EFBDAF><EFBFBD><EFBC9E>峇縺ョ繝峨く繝・繝。繝ウ繝医
Documentation/CodingStyle
縺薙l縺ッ Linux 繧ォ繝シ繝阪Ν縺ョ繧ウ繝シ繝<EFBDBC>ぅ繝ウ繧ー繧ケ繧ソ繧、繝ォ縺ィ閭梧勹縺ォ縺ゅ<EFBD8B>罰繧定ィ倩ソー
縺励※縺<E280BB>縺吶€<C280>縺ヲ縺ョ譁ー縺励繧ウ繝シ繝峨<E7B99D>縺薙<E7B8BA>繝峨く繝・繝。繝ウ繝医↓縺ゅ繧ャ繧、繝峨Λ繧、繝ウ
- 縺ォ蠕薙▲縺ヲ縺<EFBDA6>縺薙→繧呈悄蠕<E68284>繧後※縺<E280BB>縺吶€ょ、ァ驛ィ蛻<EFBDA8><E89BBB>繝。繝ウ繝<EFBDB3>リ繝シ縺ッ縺薙繧峨<E7B9A7>繝ォ繝シ
+ 縺ォ蠕薙▲縺ヲ縺<EFBDA6>縺薙→繧呈悄蠕<E68284>繧後※縺<E280BB>縺吶€ょ、ァ驛ィ蛻<EFBDA8><E89BBB>繝。繝ウ繝<EFBDB3>リ縺ッ縺薙繧峨<E7B9A7>繝ォ繝シ
繝ォ縺ォ蠕薙▲縺ヲ縺<EFBDA6>繧ゅ<E7B9A7><EFBFBD>縺代蜿励¢莉倥¢縲∝、壹¥縺ョ莠コ縺ッ豁」縺励繧ケ繧ソ繧、繝ォ縺ョ繧ウ繝シ繝<EFBDBC>
<>縺代繝ャ繝薙Η繝シ縺励縺吶€<E590B6>
@@ -168,16 +170,16 @@ Linux 繧ォ繝シ繝阪Ν繧ス繝シ繧ケ繝<EFBDB9>Μ繝シ縺ッ蟷<EFBDAF><EFBFBD><EFBC9E>峇縺ョ繝峨く繝・繝。繝ウ繝医
謾ッ謠エ縺励※縺上□縺輔<EFBC9E>
Documentation/ManagementStyle
- 縺薙<E7B8BA>繝峨く繝・繝。繝ウ繝医<E7B99D> Linux 繧ォ繝シ繝阪Ν縺ョ繝。繝ウ繝<EFBDB3>リ繝シ驕斐縺ゥ縺<EFBDA9>。悟虚縺吶縺九€<E4B99D>
+ 縺薙<E7B8BA>繝峨く繝・繝。繝ウ繝医<E7B99D> Linux 繧ォ繝シ繝阪Ν縺ョ繝。繝ウ繝<EFBDB3>リ驕斐縺ゥ縺<EFBDA9>。悟虚縺吶縺九€<E4B99D>
蠖シ繧峨<E7B9A7>謇区ウ輔<EFBDB3>閭梧勹縺ォ縺ゅ蜈ア譛峨繧後※縺<E280BB>邊セ逾槭↓縺、縺<EFBDA4>※險倩ソー縺励※縺<E280BB>縺吶€
繧後<E7B9A7>繧ォ繝シ繝阪Ν髢狗匱縺ョ蛻晏ソ<E6998F>€<EFBFBD>↑繧会シ医縺励¥縺ッ縲∝腰縺ォ闊亥袖縺後≠繧九□縺代<E7B8BA>莠コ縺ァ繧ゑシ<E38291>
- 驥崎ヲ√〒縺吶€ゅ↑縺懊↑繧峨縺ョ繝峨く繝・繝。繝ウ繝医<E7B99D>縲√き繝シ繝阪Ν繝。繝ウ繝<EFBDB3>リ繝シ驕斐<E9A995>迢ャ迚ケ縺ェ
+ 驥崎ヲ√〒縺吶€ゅ↑縺懊↑繧峨縺ョ繝峨く繝・繝。繝ウ繝医<E7B99D>縲√き繝シ繝阪Ν繝。繝ウ繝<EFBDB3>リ驕斐<E9A995>迢ャ迚ケ縺ェ
陦悟虚縺ォ縺、縺<EFBDA4>※縺ョ螟壹¥縺ョ隱、隗」繧<EFBDA3>キキ荵ア繧定ァ」豸医☆繧九°繧峨〒縺吶€<E590B6>
Documentation/stable_kernel_rules.txt
縺薙<E7B8BA>繝輔ぃ繧、繝ォ縺ッ縺ゥ縺ョ繧医≧縺ォ stable 繧ォ繝シ繝阪Ν縺ョ繝ェ繝ェ繝シ繧ケ縺瑚。後繧後縺九<E7B8BA>繝ォ繝シ
繝ォ縺瑚ィ倩ソー縺輔縺ヲ縺<EFBDA6>縺吶€ゅ◎縺励※縺薙繧峨<E7B9A7>繝ェ繝ェ繝シ繧ケ縺ョ荳ュ縺ョ縺ゥ縺薙°縺ァ螟画峩繧貞叙
- 繧雁<E7B9A7>繧後※繧ゅ<EFBD89>◆縺<E29786><E7B8BA>エ蜷医↓菴輔縺吶縺ー縺<EFBDB0>縺九遉コ縺輔縺ヲ縺<EFBDA6>縺吶€<E590B6>
+ 繧雁<E7B9A7>繧後※繧ゅ<EFBD89>◆縺<E29786><E7B8BA>エ蜷医↓菴輔縺吶縺ー濶ッ縺<EFBDAF>°縺檎、コ縺輔縺ヲ縺<EFBDA6>縺吶€<E590B6>
Documentation/kernel-docs.txt
€€繧ォ繝シ繝阪Ν髢狗匱縺ォ莉倬囂縺吶螟夜Κ繝峨く繝・繝。繝ウ繝医<E7B99D>繝ェ繧ケ繝医〒縺吶€縺励≠縺ェ縺溘
@@ -218,9 +220,9 @@ web 繧オ繧、繝医↓縺ッ縲√さ繝シ繝峨<E7B99D>讒区<E8AE92>縲√し繝悶す繧ケ繝<EFBDB9>Β縲∫樟蝨ィ蟄伜惠縺吶
縺薙縺ォ縺ッ縲√縺溘€√き繝シ繝阪Ν縺ョ繧ウ繝ウ繝代う繝ォ縺ョ繧<EFBDAE>譁ケ繧<EFBDB9>ヱ繝<E383B1>メ縺ョ蠖薙※譁ケ縺ェ縺ゥ縺ョ髢捺磁
<>↑蝓コ譛ャ諠<EFBDAC><E8ABA0>ア繧りィ倩ソー縺輔縺ヲ縺<EFBDA6>縺吶€<E590B6>
-縺ゅ↑縺溘縺ゥ縺薙°繧峨せ繧ソ繝シ繝医縺ヲ繧医縺九縺九縺ェ縺<EFBDAA>´inux 繧ォ繝シ繝阪Ν髢狗匱繧ウ繝溘Η
+縺ゅ↑縺溘縺ゥ縺薙°繧峨せ繧ソ繝シ繝医縺ヲ濶ッ縺<EFBDAF>°繧上°繧峨↑縺<E28691>´inux 繧ォ繝シ繝阪Ν髢狗匱繧ウ繝溘Η
繝九ユ繧」縺ォ蜿ょ刈縺励※菴輔°縺吶縺薙→繧偵縺後縺ヲ縺<EFBDA6>蝣エ蜷医↓縺ッ縲´inux kernel
-Janitor's 繝励Ο繧ク繧ァ繧ッ繝医↓縺<E28693>¢縺ー繧医縺ァ縺励<EFBD87> -
+Janitor's 繝励Ο繧ク繧ァ繧ッ繝医↓縺<E28693>¢縺ー濶ッ縺<EFBDAF>〒縺励<EFBD87> -
http://janitor.kernelnewbies.org/
縺薙縺ッ縺昴<E7B8BA>繧医≧縺ェ繧ケ繧ソ繝シ繝医縺吶縺ョ縺ォ縺<EFBDAB>▲縺ヲ縺、縺代<E7B8BA>蝣エ謇€縺ァ縺吶€縺薙↓縺ッ縲<EFBDAF>
Linux 繧ォ繝シ繝阪Ν繧ス繝シ繧ケ繝<EFBDB9>Μ繝シ縺ョ荳ュ縺ォ蜷ォ縺セ繧後縲√″繧後縺ォ縺励€∽ソョ豁」縺励↑縺代縺ー縺ェ
@@ -243,7 +245,7 @@ Linux 繧ォ繝シ繝阪Ν繧ス繝シ繧ケ繝<EFBDB9>Μ繝シ縺ョ荳ュ縺ォ蜷ォ縺セ繧後縲√″繧後縺ォ縺励€∽ソ
閾ェ蟾ア蜿ら<E89CBF>譁ケ蠑上〒縲∫エ「蠑輔縺、縺<EFBDA4>◆ web 蠖「蠑上〒縲√た繝シ繧ケ繧ウ繝シ繝峨蜿ら<E89CBF>縺吶縺薙→縺<E28692>
縺ァ縺阪縺吶€縺ョ譛€譁ー縺ョ邏<EFBDAE>譎エ縺励繧ォ繝シ繝阪Ν繧ウ繝シ繝峨<E7B99D>繝ェ繝昴ず繝医Μ縺ッ莉・荳九〒隕九▽縺九
縺セ縺<EFBDBE>-
- http://sosdg.org/~coywolf/lxr/
+ http://sosdg.org/~qiyong/lxr/
髢狗匱繝励Ο繧サ繧ケ
-----------------------
@@ -265,9 +267,9 @@ Linux 繧ォ繝シ繝阪Ν縺ョ髢狗匱繝励Ο繧サ繧ケ縺ッ迴セ蝨ィ蟷セ縺、縺九<E7B8BA>逡ー縺ェ繧九Γ繧、繝ウ繧
莉・荳九<E88DB3>縺ィ縺翫-
- 譁ー縺励繧ォ繝シ繝阪Ν縺後Μ繝ェ繝シ繧ケ縺輔縺溽峩蠕後↓縲<E28693>2騾ア髢薙<E9ABA2>迚ケ蛻・譛滄俣縺瑚ィュ縺代繧後€<E5BE8C>
- 縺薙<E7B8BA>譛滄俣荳ュ縺ォ縲√Γ繝ウ繝<EFBDB3>リ繝シ驕斐<E9A995> Linus 縺ォ螟ァ縺阪↑蟾ョ蛻<EFBDAE>騾√縺薙→縺後〒縺阪
- 縺吶€縺ョ繧医≧縺ェ蟾ョ蛻<EFBDAE><E89BBB>騾壼クク -mm 繧ォ繝シ繝阪Ν縺ォ謨ー騾ア髢灘性縺セ繧後※縺阪◆繝代ャ繝√〒
- 縺吶€<E590B6> 螟ァ縺阪↑螟画峩縺ッ git(繧ォ繝シ繝阪Ν縺ョ繧ス繝シ繧ケ邂。逅<EFBDA1>ヤ繝シ繝ォ縲∬ゥウ邏ー縺ッ
+ 縺薙<E7B8BA>譛滄俣荳ュ縺ォ縲√Γ繝ウ繝<EFBDB3>リ驕斐<E9A995> Linus 縺ォ螟ァ縺阪↑蟾ョ蛻<EFBDAE>騾√縺薙→縺後〒縺阪縺吶€<E590B6>
+ 縺薙<E7B8BA>繧医≧縺ェ蟾ョ蛻<EFBDAE><E89BBB>騾壼クク -mm 繧ォ繝シ繝阪Ν縺ォ謨ー騾ア髢灘性縺セ繧後※縺阪◆繝代ャ繝√〒縺吶€<E590B6>
+ 螟ァ縺阪↑螟画峩縺ッ git(繧ォ繝シ繝阪Ν縺ョ繧ス繝シ繧ケ邂。逅<EFBDA1>ヤ繝シ繝ォ縲∬ゥウ邏ー縺ッ
http://git.or.cz/ 蜿ら<E89CBF>) 繧剃スソ縺」縺ヲ騾√縺ョ縺悟・ス縺セ縺励<EFBC9E>譁ケ縺ァ縺吶縲√ヱ繝<E383B1>
繝√ヵ繧。繧、繝ォ縺ョ蠖「蠑上<E8A091>縺セ縺セ騾√縺ョ縺ァ繧ょ香蛻<E9A699>〒縺吶€<E590B6>
@@ -285,6 +287,10 @@ Linux 繧ォ繝シ繝阪Ν縺ョ髢狗匱繝励Ο繧サ繧ケ縺ッ迴セ蝨ィ蟷セ縺、縺九<E7B8BA>逡ー縺ェ繧九Γ繧、繝ウ繧
縺ォ螳牙ョ壹縺溽憾諷九↓縺ゅ縺ィ蛻、譁ュ縺励◆縺ィ縺阪↓繝ェ繝ェ繝シ繧ケ縺輔縺セ縺吶€ら岼讓吶<E8AE93>豈朱€ア譁ー
縺励> -rc 繧ォ繝シ繝阪Ν繧偵Μ繝ェ繝シ繧ケ縺吶縺薙→縺ァ縺吶€<E590B6>
+ - 莉・荳九<E88DB3> URL 縺ァ蜷<EFBDA7> -rc 繝ェ繝ェ繝シ繧ケ縺ォ蟄伜惠縺吶譌「遏・縺ョ蠕梧綾繧雁撫鬘後<E9AC98>繝ェ繧ケ繝<EFBDB9>
+ 縺瑚ソス霍。縺輔縺セ縺<EFBDBE>-
+ http://kernelnewbies.org/known_regressions
+
- 縺薙<E7B8BA>繝励Ο繧サ繧ケ縺ッ繧ォ繝シ繝阪Ν<CE9D> 縲梧コ門縺後〒縺阪◆縲阪→閠<E28692>∴繧峨繧九縺ァ邯咏カ壹縺セ
縺吶€縺ョ繝励Ο繧サ繧ケ縺ッ縺<EFBDAF><EFBFBD>◆縺<E29786> 6騾ア髢鍋カ咏カ壹縺セ縺吶€<E590B6>
@@ -331,8 +337,8 @@ Andrew 縺ッ蛟句挨縺ョ繧オ繝悶す繧ケ繝<EFBDB9>Β繧ォ繝シ繝阪Ν<CE9D>Μ繝シ縺ィ繝代ャ繝√蜈ィ縺ヲ<E7B8BA>
linux-kernel 繝。繝シ繝ェ繝ウ繧ー繝ェ繧ケ繝医〒蜿朱寔縺輔l縺溷、壽焚縺ョ繝代ャ繝√→蜷梧凾縺ォ荳€縺、縺ォ縺セ
縺ィ繧√縺吶€<E590B6>
縺薙<E7B8BA><EFBFBD>Μ繝シ縺ッ譁ー讖溯<E8AE96>縺ィ繝代ャ繝√讀懆ィシ縺輔繧句<E7B9A7>エ縺ィ縺ェ繧翫縺吶€ゅ≠繧区悄髢薙<E9ABA2>髢薙ヱ繝<E383B1>
-縺<> -mm 縺ォ蜈・縺」縺ヲ萓。蛟、繧定ィシ譏弱繧後◆繧峨€、ndrew 繧<>し繝悶す繧ケ繝<EFBDB9>Β繝。繝ウ繝<EFBDB3>リ縺後€√Γ
-繧、繝ウ繝ゥ繧、繝ウ縺ク蜈・繧後k繧医≧縺ォ Linus 縺ォ繝励ャ繧キ繝・縺励縺吶€<E590B6>
+縺<> -mm 縺ォ蜈・縺」縺ヲ萓。蛟、繧定ィシ譏弱繧後◆繧峨€、ndrew 繧<>し繝悶す繧ケ繝<EFBDB9>Β繝。繝ウ繝<EFBDB3>リ縺後€<E5BE8C>
+繝。繧、繝ウ繝ゥ繧、繝ウ縺ク蜈・繧後k繧医≧縺ォ Linus 縺ォ繝励ャ繧キ繝・縺励縺吶€<E590B6>
繝。繧、繝ウ繧ォ繝シ繝阪Ν<CE9D>Μ繝シ縺ォ蜷ォ繧√縺溘縺ォ Linus 縺ォ騾√k蜑阪↓縲√☆縺ケ縺ヲ縺ョ譁ー縺励>繝代ャ
繝√′ -mm 繝<>Μ繝シ縺ァ繝<EFBDA7>せ繝医繧後縺薙→縺悟シキ縺乗耳螂ィ縺輔縺セ縺吶€<E590B6>
@@ -460,7 +466,7 @@ MAINTAINERS 繝輔ぃ繧、繝ォ縺ォ繝ェ繧ケ繝医縺ゅ縺セ縺吶<E7B8BA>縺ァ蜿ら<E89CBF>縺励※縺上□縺輔<E7B8BA>
縺帙s-
蠖シ繧峨<E7B9A7>縺ゅ↑縺溘<E7B8BA>繝代ャ繝√<E7B99D>陦梧ッ弱↓繧ウ繝。繝ウ繝医蜈・繧後◆縺<E29786><E7B8BA>縺ァ縲√◎縺ョ縺溘縺ォ縺ッ縺昴≧縺<E289A7>
繧九縺九≠繧翫縺帙縲ゅ≠縺ェ縺溘<E7B8BA>繝。繝シ繝ォ繝励Ο繧ー繝ゥ繝<EFBDA9>縺檎ゥコ逋ス繧<EFBDBD>ち繝悶蝨ァ邵ョ縺励↑縺<E28691><EFBD88>
-縺ォ遒コ隱阪縺滓婿縺後<EFBC9E>〒縺吶€よ怙蛻昴<E89BBB>濶ッ縺<EFBDAF>ユ繧ケ繝医→縺励※縺ッ縲∬<E7B8B2><EFBFBD>↓繝。繝シ繝ォ繧帝€√▲縺ヲ
+縺ォ遒コ隱阪縺滓婿縺瑚憶縺<E686B6>〒縺吶€よ怙蛻昴<E89BBB>濶ッ縺<EFBDAF>ユ繧ケ繝医→縺励※縺ッ縲∬<E7B8B2><EFBFBD>↓繝。繝シ繝ォ繧帝€√▲縺ヲ
縺ソ縺ヲ縲√◎縺ョ繝代ャ繝√閾ェ蛻<EFBDAA>〒蠖薙※縺ヲ縺ソ繧九縺ィ縺ァ縺吶€縺励◎繧後<E280B2>縺剰。後°縺ェ縺<EFBDAA>
繧峨€√≠縺ェ縺溘<E7B8BA>繝。繝シ繝ォ繝励Ο繧ー繝ゥ繝<EFBDA9>繧堤峩縺励※繧ゅ<EFBD89>°縲∵ュ」縺励¥蜍輔¥繧医≧縺ォ螟峨∴繧九∋
縺阪〒縺吶€<E590B6>
@@ -507,14 +513,14 @@ MAINTAINERS 繝輔ぃ繧、繝ォ縺ォ繝ェ繧ケ繝医縺ゅ縺セ縺吶<E7B8BA>縺ァ蜿ら<E89CBF>縺励※縺上□縺輔<E7B8BA>
縺ィ繧よ勸騾壹<E9A8BE>縺薙→縺ァ縺吶€繧後<E7B9A7>縺ゅ↑縺溘<E7B8BA>繝代ャ繝√蜿励¢蜈・繧後繧後↑縺<E28691>→縺<E28692>≧縺薙→縺ァ
縺ッ *縺ゅj縺セ縺帙s*縲√◎縺励※縺ゅ↑縺溯<E7B8BA>霄ォ縺ォ蜿榊ッセ縺吶縺薙→繧呈э蜻ウ縺吶縺ョ縺ァ繧<EFBDA7> *縺ゅj縺セ
縺帙s*縲ょ腰縺ォ閾ェ蛻<EFBDAA><E89BBB>繝代ャ繝√↓蟇セ縺励※謖<E280BB>遭縺輔縺溷撫鬘後蜈ィ縺ヲ菫ョ豁」縺励※蜀埼€√☆繧後<E7B9A7>
-縺<>縺ョ縺ァ縺吶€<E590B6>
+濶ッ縺<EFBDAF><E7B8BA>縺ァ縺吶€<E590B6>
繧ォ繝シ繝阪Ν繧ウ繝溘Η繝九ユ繧」縺ィ莨∵・ュ邨<EFBDAD>ケ斐<EFBDB9>縺。縺後
-----------------------------------------------------------------
繧ォ繝シ繝阪Ν繧ウ繝溘Η繝九ユ繧」縺ッ螟ァ驛ィ蛻<EFBDA8><E89BBB>莨晉オア逧<EFBDB1>↑莨夂、セ縺ョ髢狗匱迺ー蠅<EFBDB0>→縺ッ逡ー縺」縺溘繧頑婿縺ァ
-蜍輔縺ヲ縺<EFBDA6>縺吶€ゆサ・荳九<E88DB3>蝠城。後驕ソ縺代縺溘縺ォ縺ァ縺阪縺ィ繧医縺薙→縺ョ縺ョ繝ェ繧ケ繝医〒縺<E38092>-
+蜍輔縺ヲ縺<EFBDA6>縺吶€ゆサ・荳九<E88DB3>蝠城。後驕ソ縺代縺溘縺ォ縺ァ縺阪縺ィ濶ッ縺<EFBDAF>縺ィ縺ョ繝ェ繧ケ繝医〒縺<E38092>-
縺ゅ↑縺溘<E7B8BA>謠先。医☆繧句、画峩縺ォ縺、縺<EFBDA4>※險€<C280>→縺阪<E7B8BA><EFBFBD><E288AA>€<C280>婿<EFBFBD><E5A9BF>
@@ -525,7 +531,7 @@ MAINTAINERS 繝輔ぃ繧、繝ォ縺ォ繝ェ繧ケ繝医縺ゅ縺セ縺吶<E7B8BA>縺ァ蜿ら<E89CBF>縺励※縺上□縺輔<E7B8BA>
- "莉・荳九<E88DB3>€騾」縺ョ蟆上縺ェ繝代ャ繝∫セ、縺ァ縺吶..."
- "縺薙縺ッ蜈ク蝙狗噪縺ェ繝槭す繝ウ縺ァ縺ョ諤ァ閭ス繧貞髄荳翫縺帙<E288AA>.."
- 繧<>縺滓婿縺後<EFBC9E>が縺<E3818C>€<C280>婿<EFBFBD><E5A9BF>
+ 繧<>縺滓婿縺瑚憶縺<E686B6>が縺<E3818C>€<C280>婿<EFBFBD><E5A9BF>
- 縺薙<E7B8BA><EFBFBD>譁ケ縺ァ AIX/ptx/Solaris 縺ァ縺ッ縺ァ縺阪◆縺ョ縺ァ縲√〒縺阪k縺ッ縺壹□
- 遘√<E98198>縺薙<EFBD8C>20蟷エ繧ゅ<E7B9A7>髢薙縺」縺ヲ縺阪◆縲√□縺九
@@ -575,10 +581,10 @@ Linux 繧ォ繝シ繝阪Ν繧ウ繝溘Η繝九ユ繧」縺ッ縲∽ク€蠎ヲ縺ォ螟ァ驥上<E9A9A5>繧ウ繝シ繝峨<E7B99D>蝪翫
1) 蟆上<EFBC86>ヱ繝<E383B1>メ縺ッ縺ゅ↑縺溘<E7B8BA>繝代ャ繝√驕ゥ逕ィ縺輔繧玖ヲ玖セシ縺ソ繧貞、ァ縺阪¥縺励縺吶€√き繝シ
繝阪Ν縺ョ莠コ驕斐<E9A995>繝代ャ繝√豁」縺励縺九←縺<E28690>°繧堤「コ隱阪☆繧区凾髢薙蜉エ蜉帙縺九¢縺ェ縺<EFBDAA>°
- 繧峨〒縺吶€<E590B6>5陦後<E999A6>繝代ャ繝√<E7B99D>繝。繝ウ繝<EFBDB3>リ縺後◆縺」縺<EFBDA3>1遘定ヲ九<EFBD8B>縺代〒驕ゥ逕ィ縺ァ縺阪縺吶€
- 縺九<EFBCA0>500陦後<E999A6>繝代ャ繝√<E7B99D>縲∵ュ」縺励縺薙→繧偵Ξ繝薙Η繝シ縺吶縺ョ縺ォ謨ー譎る俣縺九°繧九°繧<C2B0>
- 縺励l縺セ縺帙s(譎る俣縺ッ繝代ャ繝√<E7B99D>繧オ繧、繧コ縺ェ縺ゥ縺ォ繧医<EFBD8A>焚髢「謨ー縺ォ豈比セ九縺ヲ縺九°繧翫
- 縺<>)
+ 繧峨〒縺吶€<E590B6>5陦後<E999A6>繝代ャ繝√<E7B99D>繝。繝ウ繝<EFBDB3>リ縺後◆縺」縺<EFBDA3>1遘定ヲ九<EFBD8B>縺代〒驕ゥ逕ィ縺ァ縺阪縺吶€<E590B6>
+ 縺励°縺励€<E58AB1>500陦後<E999A6>繝代ャ繝√<E7B99D>縲∵ュ」縺励縺薙→繧偵Ξ繝薙Η繝シ縺吶縺ョ縺ォ謨ー譎る俣縺九°繧九°
+ 繧ゅ@繧後∪縺帙s(譎る俣縺ッ繝代ャ繝√<E7B99D>繧オ繧、繧コ縺ェ縺ゥ縺ォ繧医<EFBD8A>焚髢「謨ー縺ォ豈比セ九縺ヲ縺九°繧<C2B0>
+ 縺セ縺<EFBDBE>)
蟆上<EFBC86>ヱ繝<E383B1>メ縺ッ菴輔°縺ゅ▲縺溘→縺阪↓繝<E28693>ヰ繝<E383B0>げ繧ゅ→縺ヲ繧らー。蜊倥↓縺ェ繧翫縺吶€ゅヱ繝<E383B1>
繝√1蛟<31>1蛟句叙繧企勁縺上<E7B8BA>縺ッ縲√→縺ヲ繧ょ、ァ縺阪↑繝代ャ繝√蠖薙※縺溷セ後↓(縺九▽縲∽ス輔°縺<C2B0>
@@ -587,23 +593,23 @@ Linux 繧ォ繝シ繝阪Ν繧ウ繝溘Η繝九ユ繧」縺ッ縲∽ク€蠎ヲ縺ォ螟ァ驥上<E9A9A5>繧ウ繝シ繝峨<E7B99D>蝪翫
2) 蟆上<EFBC86>ヱ繝<E383B1>メ繧帝€<EFBD8B>縺代〒縺ェ縺上€<E4B88A>€縺セ縺医↓縲∵嶌縺咲峩縺励※縲√す繝ウ繝励Ν縺ォ縺<EFBDAB>
<>(繧ゅ縺上<E7B8BA>縲∝腰縺ォ鬆<EFBDAB>分繧貞、峨∴繧九□縺代〒繧<E38092>)縺薙→繧ゅ€√→縺ヲ繧る㍾隕√〒縺吶€<E590B6>
-莉・荳九<E88DB3>繧ォ繝シ繝阪Ν髢狗匱閠<E58CB1><E996A0> Al Viro 縺ョ縺溘→縺郁ゥア縺励〒縺呻シ<E591BB>
+莉・荳九<E88DB3>繧ォ繝シ繝阪Ν髢狗匱閠<E58CB1><E996A0> Al Viro 縺ョ縺溘→縺郁ゥア縺ァ縺呻シ<E591BB>
"逕溷セ偵<EFBDBE>謨ー蟄ヲ縺ョ螳ソ鬘後謗。轤ケ縺吶蜈育函縺ョ縺薙→繧定€<E5AE9A>∴縺ヲ縺ソ縺ヲ縺上□縺輔縲∝<E7B8B2>
- 逕溘<E98095>逕溷セ偵隗」縺ォ蛻ー驕斐☆繧九縺ァ縺ョ隧ヲ陦碁険隱、繧偵∩縺溘縺ィ縺ッ諤昴縺ェ縺<EFBDAA>〒縺励
- 縺<>€<C280>逕溘<E98095>邁。貎斐↑譛€鬮倥<E9ACAE>隗」繧偵∩縺溘縺ョ縺ァ縺吶€り憶縺<E686B6>函蠕偵<E8A095>縺薙繧堤衍縺」縺ヲ
+ 逕溘<E98095>逕溷セ偵隗」縺ォ蛻ー驕斐☆繧九縺ァ縺ョ隧ヲ陦碁険隱、繧定ヲ九◆縺<E29786>→縺ッ諤昴縺ェ縺<EFBDAA>〒縺励
+ 縺<>€<C280>逕溘<E98095>邁。貎斐↑譛€鬮倥<E9ACAE>隗」繧定ヲ九◆縺<E29786><E7B8BA>縺ァ縺吶€り憶縺<E686B6>函蠕偵<E8A095>縺薙繧堤衍縺」縺ヲ
縺翫縲√◎縺励※譛€邨りァ」縺ョ蜑阪<E89C91>荳ュ髢謎ス懈・ュ繧呈署蜃コ縺吶縺薙→縺ッ豎コ縺励※縺ェ縺<EFBDAA><E7B8BA>縺ァ
<>"
- 繧ォ繝シ繝阪Ν髢狗匱縺ァ繧ゅ繧後<E7B9A7>蜷後§縺ァ縺吶€ゅΓ繝ウ繝<EFBDB3>リ繝シ驕斐→繝ャ繝薙Η繝シ繧「驕斐<E9A995><EFBFBD>
- 蝠城。後隗」豎コ縺吶隗」縺ョ閭悟セ後↓縺ェ繧区€€<E69981><C280>繝ュ繧サ繧ケ繧偵∩縺溘縺ィ縺ッ諤昴縺セ縺帙<EFBD93>
- 蠖シ繧峨<E7B9A7>蜊倡エ斐〒縺ゅ<EFBC8A>°縺ェ隗」豎コ譁ケ豕輔縺ソ縺溘縺ョ縺ァ縺吶€<E590B6>
+ 繧ォ繝シ繝阪Ν髢狗匱縺ァ繧ゅ繧後<E7B9A7>蜷後§縺ァ縺吶€ゅΓ繝ウ繝<EFBDB3>リ驕斐→繝ャ繝薙Η繝シ繧「驕斐<E9A995><EFBFBD>
+ 蝠城。後隗」豎コ縺吶隗」縺ョ閭悟セ後↓縺ェ繧区€€<E69981><C280>繝ュ繧サ繧ケ繧定ヲ九◆縺<E29786>→縺ッ諤昴縺セ縺帙<EFBD93>
+ 蠖シ繧峨<E7B9A7>蜊倡エ斐〒縺ゅ<EFBC8A>°縺ェ隗」豎コ譁ケ豕輔隕九◆縺<E29786><E7B8BA>縺ァ縺吶€<E590B6>
縺ゅ<EFBC8A>°縺ェ隗」繧定ェャ譏弱☆繧九<E7B9A7>縺ィ縲√さ繝溘Η繝九ユ繧」縺ィ蜈ア縺ォ莉穂コ九縺励€∵悴隗」豎コ縺ョ莉穂コ九
隴ー隲悶☆繧九縺ィ縺ョ繝舌Λ繝ウ繧ケ繧偵く繝シ繝励☆繧九<E7B9A7>縺ッ髮」縺励縺九縺励縺セ縺帙<EFBD93>
縺ァ縺吶°繧峨€<E5B3A8>幕逋コ繝励Ο繧サ繧ケ縺ョ譌ゥ譛滓ョオ髫弱〒謾ケ蝟<EFBDB9><E89D9F>縺溘縺ョ繝輔ぅ繝シ繝峨ヰ繝<E383B0>け繧偵繧峨≧繧<E289A7>
-縺<>↓縺吶縺ョ繧ゅ<EFBC9E>〒縺吶縲∝、画峩轤ケ繧貞ー上<EFBC86>Κ<CE9A>↓蛻<E28693>牡縺励※蜈ィ菴薙〒縺ッ縺セ縺<EFBDBE>螳梧<E89EB3><EFBFBD>
-縺ヲ縺<EFBDA6>↑縺<E28691>サ穂コ九(驛ィ蛻<EFBDA8>噪縺ォ)蜿悶霎シ繧薙〒繧ゅ縺医繧医≧縺ォ縺吶縺薙→繧ゅ<EFBC9E>縺ィ縺ァ縺吶€<E590B6>
+縺<>↓縺吶縺ョ繧り憶縺<E686B6>〒縺吶縲∝、画峩轤ケ繧貞ー上<EFBC86>Κ<CE9A>↓蛻<E28693>牡縺励※蜈ィ菴薙〒縺ッ縺セ縺<EFBDBE>螳梧<E89EB3><EFBFBD>
+縺ヲ縺<EFBDA6>↑縺<E28691>サ穂コ九(驛ィ蛻<EFBDA8>噪縺ォ)蜿悶霎シ繧薙〒繧ゅ縺医繧医≧縺ォ縺吶縺薙→繧り憶縺<E686B6>縺ィ縺ァ縺吶€<E590B6>
縺セ縺溘€√〒縺堺ク翫縺」縺ヲ縺<EFBDA6>↑縺<E28691>縺ョ繧<EFBDAE>€<EFBFBD>"蟆<>擂逶エ縺<EFBDB4>" 繧医≧縺ェ繝代ャ繝√縲∵悽豬√↓蜷ォ繧<EFBDAB>
縺ヲ繧ゅ<EFBD89><EFBD88>↓騾√▲縺ヲ繧ゅ€√◎繧後<E7B9A7>蜿励¢莉倥¢繧峨縺ェ縺<EFBDAA>縺ィ繧堤炊隗」縺励※縺上□縺輔<EFBC9E>
@@ -629,7 +635,7 @@ Linux 繧ォ繝シ繝阪Ν繧ウ繝溘Η繝九ユ繧」縺ッ縲∽ク€蠎ヲ縺ォ螟ァ驥上<E9A9A5>繧ウ繝シ繝峨<E7B99D>蝪翫
- 繝<>せ繝育オ先棡
縺薙縺ォ縺、縺<EFBDA4>※蜈ィ縺ヲ縺後←縺ョ繧医≧縺ォ縺ゅ縺ケ縺阪°縺ォ縺、縺<EFBDA4>※縺ョ隧ウ邏ー縺ッ縲∽サ・荳九<E88DB3>繝峨く繝・繝。
-繝ウ繝医<E7B99D> ChangeLog 繧サ繧ッ繧キ繝ァ繝ウ繧偵∩縺ヲ縺上□縺輔>-
+繝ウ繝医<E7B99D> ChangeLog 繧サ繧ッ繧キ繝ァ繝ウ繧定ヲ九※縺上□縺輔>-
"The Perfect Patch"
http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
diff --git a/Makefile b/Makefile
index c244a02..c6d545c 100644
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index ed39313..026cf24 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -819,7 +819,6 @@ static int __blk_free_tags(struct blk_queue_tag *bqt)
retval = atomic_dec_and_test(&bqt->refcnt);
if (retval) {
BUG_ON(bqt->busy);
- BUG_ON(!list_empty(&bqt->busy_list));
kfree(bqt->tag_index);
bqt->tag_index = NULL;
@@ -931,7 +930,6 @@ static struct blk_queue_tag *__blk_queue_init_tags(struct request_queue *q,
if (init_tag_map(q, tags, depth))
goto fail;
- INIT_LIST_HEAD(&tags->busy_list);
tags->busy = 0;
atomic_set(&tags->refcnt, 1);
return tags;
@@ -982,6 +980,7 @@ int blk_queue_init_tags(struct request_queue *q, int depth,
*/
q->queue_tags = tags;
q->queue_flags |= (1 << QUEUE_FLAG_QUEUED);
+ INIT_LIST_HEAD(&q->tag_busy_list);
return 0;
fail:
kfree(tags);
@@ -1152,7 +1151,7 @@ int blk_queue_start_tag(struct request_queue *q, struct request *rq)
rq->tag = tag;
bqt->tag_index[tag] = rq;
blkdev_dequeue_request(rq);
- list_add(&rq->queuelist, &bqt->busy_list);
+ list_add(&rq->queuelist, &q->tag_busy_list);
bqt->busy++;
return 0;
}
@@ -1173,11 +1172,10 @@ EXPORT_SYMBOL(blk_queue_start_tag);
**/
void blk_queue_invalidate_tags(struct request_queue *q)
{
- struct blk_queue_tag *bqt = q->queue_tags;
struct list_head *tmp, *n;
struct request *rq;
- list_for_each_safe(tmp, n, &bqt->busy_list) {
+ list_for_each_safe(tmp, n, &q->tag_busy_list) {
rq = list_entry_rq(tmp);
if (rq->tag == -1) {
diff --git a/fs/locks.c b/fs/locks.c
index c795eaa..494f250 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -694,11 +694,20 @@ EXPORT_SYMBOL(posix_test_lock);
* Note: the above assumption may not be true when handling lock requests
* from a broken NFS client. But broken NFS clients have a lot more to
* worry about than proper deadlock detection anyway... --okir
+ *
+ * However, the failure of this assumption (also possible in the case of
+ * multiple tasks sharing the same open file table) also means there's no
+ * guarantee that the loop below will terminate. As a hack, we give up
+ * after a few iterations.
*/
+
+#define MAX_DEADLK_ITERATIONS 10
+
static int posix_locks_deadlock(struct file_lock *caller_fl,
struct file_lock *block_fl)
{
struct list_head *tmp;
+ int i = 0;
next_task:
if (posix_same_owner(caller_fl, block_fl))
@@ -706,6 +715,8 @@ next_task:
list_for_each(tmp, &blocked_list) {
struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
if (posix_same_owner(fl, block_fl)) {
+ if (i++ > MAX_DEADLK_ITERATIONS)
+ return 0;
fl = fl->fl_next;
block_fl = fl;
goto next_task;
diff --git a/fs/proc/array.c b/fs/proc/array.c
index ee4814d..20d7ae4 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -351,7 +351,8 @@ static cputime_t task_utime(struct task_struct *p)
}
utime = (clock_t)temp;
- return clock_t_to_cputime(utime);
+ p->prev_utime = max(p->prev_utime, clock_t_to_cputime(utime));
+ return p->prev_utime;
}
static cputime_t task_stime(struct task_struct *p)
@@ -366,7 +367,8 @@ static cputime_t task_stime(struct task_struct *p)
stime = nsec_to_clock_t(p->se.sum_exec_runtime) -
cputime_to_clock_t(task_utime(p));
- return clock_t_to_cputime(stime);
+ p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime));
+ return p->prev_stime;
}
#endif
diff --git a/fs/splice.c b/fs/splice.c
index e95a362..02c39ae 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1390,10 +1390,10 @@ static int pipe_to_user(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
if (copy_to_user(sd->u.userptr, src + buf->offset, sd->len))
ret = -EFAULT;
+ buf->ops->unmap(pipe, buf, src);
out:
if (ret > 0)
sd->u.userptr += ret;
- buf->ops->unmap(pipe, buf, src);
return ret;
}
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index b126c6f..d26bbb0 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -356,7 +356,6 @@ enum blk_queue_state {
struct blk_queue_tag {
struct request **tag_index; /* map of busy tags */
unsigned long *tag_map; /* bit map of free/busy tags */
- struct list_head busy_list; /* fifo list of busy tags */
int busy; /* current depth */
int max_depth; /* what we will send to device */
int real_max_depth; /* what the array can hold */
@@ -451,6 +450,7 @@ struct request_queue
unsigned int dma_alignment;
struct blk_queue_tag *queue_tags;
+ struct list_head tag_busy_list;
unsigned int nr_sorted;
unsigned int in_flight;
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 313c6b6..f509fbd 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1022,6 +1022,7 @@ struct task_struct {
unsigned int rt_priority;
cputime_t utime, stime;
+ cputime_t prev_utime, prev_stime;
unsigned long nvcsw, nivcsw; /* context switch counts */
struct timespec start_time; /* monotonic time */
struct timespec real_start_time; /* boot based time */
diff --git a/kernel/fork.c b/kernel/fork.c
index 33f12f4..f299d45 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1045,6 +1045,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
p->utime = cputime_zero;
p->stime = cputime_zero;
+ p->prev_utime = cputime_zero;
+ p->prev_stime = cputime_zero;
#ifdef CONFIG_TASK_XACCT
p->rchar = 0; /* I/O counter: bytes read */
diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
index 2c2e295..f938c23 100644
--- a/kernel/futex_compat.c
+++ b/kernel/futex_compat.c
@@ -29,6 +29,15 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry,
return 0;
}
+static void __user *futex_uaddr(struct robust_list *entry,
+ compat_long_t futex_offset)
+{
+ compat_uptr_t base = ptr_to_compat(entry);
+ void __user *uaddr = compat_ptr(base + futex_offset);
+
+ return uaddr;
+}
+
/*
* Walk curr->robust_list (very carefully, it's a userspace list!)
* and mark any locks found there dead, and notify any waiters.
@@ -75,11 +84,13 @@ void compat_exit_robust_list(struct task_struct *curr)
* A pending lock might already be on the list, so
* dont process it twice:
*/
- if (entry != pending)
- if (handle_futex_death((void __user *)entry + futex_offset,
- curr, pi))
- return;
+ if (entry != pending) {
+ void __user *uaddr = futex_uaddr(entry,
+ futex_offset);
+ if (handle_futex_death(uaddr, curr, pi))
+ return;
+ }
if (rc)
return;
uentry = next_uentry;
@@ -93,9 +104,11 @@ void compat_exit_robust_list(struct task_struct *curr)
cond_resched();
}
- if (pending)
- handle_futex_death((void __user *)pending + futex_offset,
- curr, pip);
+ if (pending) {
+ void __user *uaddr = futex_uaddr(pending, futex_offset);
+
+ handle_futex_death(uaddr, curr, pip);
+ }
}
asmlinkage long
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 734da57..42ae4a5 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -1521,7 +1521,7 @@ cache_hit:
}
static int validate_chain(struct task_struct *curr, struct lockdep_map *lock,
- struct held_lock *hlock, int chain_head)
+ struct held_lock *hlock, int chain_head, u64 chain_key)
{
/*
* Trylock needs to maintain the stack of held locks, but it
@@ -1534,7 +1534,7 @@ static int validate_chain(struct task_struct *curr, struct lockdep_map *lock,
* graph_lock for us)
*/
if (!hlock->trylock && (hlock->check == 2) &&
- lookup_chain_cache(curr->curr_chain_key, hlock->class)) {
+ lookup_chain_cache(chain_key, hlock->class)) {
/*
* Check whether last held lock:
*
@@ -1576,7 +1576,7 @@ static int validate_chain(struct task_struct *curr, struct lockdep_map *lock,
#else
static inline int validate_chain(struct task_struct *curr,
struct lockdep_map *lock, struct held_lock *hlock,
- int chain_head)
+ int chain_head, u64 chain_key)
{
return 1;
}
@@ -2450,11 +2450,11 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
chain_head = 1;
}
chain_key = iterate_chain_key(chain_key, id);
- curr->curr_chain_key = chain_key;
- if (!validate_chain(curr, lock, hlock, chain_head))
+ if (!validate_chain(curr, lock, hlock, chain_head, chain_key))
return 0;
+ curr->curr_chain_key = chain_key;
curr->lockdep_depth++;
check_chain_key(curr);
#ifdef CONFIG_DEBUG_LOCKDEP
diff --git a/kernel/params.c b/kernel/params.c
index 4e57732..5e5651f 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -595,13 +595,16 @@ static void __init param_sysfs_builtin(void)
for (i=0; i < __stop___param - __start___param; i++) {
char *dot;
+ size_t max_name_len;
kp = &__start___param[i];
+ max_name_len =
+ min_t(size_t, MAX_KBUILD_MODNAME, strlen(kp->name));
- /* We do not handle args without periods. */
- dot = memchr(kp->name, '.', MAX_KBUILD_MODNAME);
+ dot = memchr(kp->name, '.', max_name_len);
if (!dot) {
- DEBUGP("couldn't find period in %s\n", kp->name);
+ DEBUGP("couldn't find period in first %d characters "
+ "of %s\n", MAX_KBUILD_MODNAME, kp->name);
continue;
}
name_len = dot - kp->name;
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index 708d488..e557c44 100644
--- a/kernel/softlockup.c
+++ b/kernel/softlockup.c
@@ -80,10 +80,11 @@ void softlockup_tick(void)
print_timestamp = per_cpu(print_timestamp, this_cpu);
/* report at most once a second */
- if (print_timestamp < (touch_timestamp + 1) ||
- did_panic ||
- !per_cpu(watchdog_task, this_cpu))
+ if ((print_timestamp >= touch_timestamp &&
+ print_timestamp < (touch_timestamp + 1)) ||
+ did_panic || !per_cpu(watchdog_task, this_cpu)) {
return;
+ }
/* do not print during early bootup: */
if (unlikely(system_state != SYSTEM_RUNNING)) {
diff --git a/mm/filemap.c b/mm/filemap.c
index 15c8413..14ca63f 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1312,7 +1312,7 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
size = (i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
if (vmf->pgoff >= size)
- goto outside_data_content;
+ return VM_FAULT_SIGBUS;
/* If we don't want any read-ahead, don't bother */
if (VM_RandomReadHint(vma))
@@ -1389,7 +1389,7 @@ retry_find:
if (unlikely(vmf->pgoff >= size)) {
unlock_page(page);
page_cache_release(page);
- goto outside_data_content;
+ return VM_FAULT_SIGBUS;
}
/*
@@ -1400,15 +1400,6 @@ retry_find:
vmf->page = page;
return ret | VM_FAULT_LOCKED;
-outside_data_content:
- /*
- * An external ptracer can access pages that normally aren't
- * accessible..
- */
- if (vma->vm_mm == current->mm)
- return VM_FAULT_SIGBUS;
-
- /* Fall through to the non-read-ahead case */
no_cached_page:
/*
* We're only likely to ever get here if MADV_RANDOM is in
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 4472036..97ddc58 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -672,8 +672,10 @@ retry:
ret = (*writepage)(page, wbc, data);
- if (unlikely(ret == AOP_WRITEPAGE_ACTIVATE))
+ if (unlikely(ret == AOP_WRITEPAGE_ACTIVATE)) {
unlock_page(page);
+ ret = 0;
+ }
if (ret || (--(wbc->nr_to_write) <= 0))
done = 1;
if (wbc->nonblocking && bdi_write_congested(bdi)) {
diff --git a/mm/shmem.c b/mm/shmem.c
index fcd19d3..95558e4 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -916,6 +916,21 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
struct inode *inode;
BUG_ON(!PageLocked(page));
+ /*
+ * shmem_backing_dev_info's capabilities prevent regular writeback or
+ * sync from ever calling shmem_writepage; but a stacking filesystem
+ * may use the ->writepage of its underlying filesystem, in which case
+ * we want to do nothing when that underlying filesystem is tmpfs
+ * (writing out to swap is useful as a response to memory pressure, but
+ * of no use to stabilize the data) - just redirty the page, unlock it
+ * and claim success in this case. AOP_WRITEPAGE_ACTIVATE, and the
+ * page_mapped check below, must be avoided unless we're in reclaim.
+ */
+ if (!wbc->for_reclaim) {
+ set_page_dirty(page);
+ unlock_page(page);
+ return 0;
+ }
BUG_ON(page_mapped(page));
mapping = page->mapping;
diff --git a/mm/slub.c b/mm/slub.c
index addb20a..c1f2fda 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1501,28 +1501,8 @@ new_slab:
page = new_slab(s, gfpflags, node);
if (page) {
cpu = smp_processor_id();
- if (s->cpu_slab[cpu]) {
- /*
- * Someone else populated the cpu_slab while we
- * enabled interrupts, or we have gotten scheduled
- * on another cpu. The page may not be on the
- * requested node even if __GFP_THISNODE was
- * specified. So we need to recheck.
- */
- if (node == -1 ||
- page_to_nid(s->cpu_slab[cpu]) == node) {
- /*
- * Current cpuslab is acceptable and we
- * want the current one since its cache hot
- */
- discard_slab(s, page);
- page = s->cpu_slab[cpu];
- slab_lock(page);
- goto load_freelist;
- }
- /* New slab does not fit our expectations */
+ if (s->cpu_slab[cpu])
flush_slab(s, s->cpu_slab[cpu], cpu);
- }
slab_lock(page);
SetSlabFrozen(page);
s->cpu_slab[cpu] = page;