diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-26 14:36:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-26 14:36:12 -0400 |
commit | 05e4cb7c25c1ac35a6a61c79ad40cf69dd3538bf (patch) | |
tree | 5afe08194536045b97c16edf768e50805acf70fd | |
parent | 8f074a557104aed6f7b0a0913227039481da3449 (diff) | |
parent | 9b0ee8cf70457520c144e944bcf8df2324bad880 (diff) |
Merge tag 'char-misc-3.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc patches from Greg KH:
"Here are some char/misc patches for 3.11-rc3. It's pretty much just:
- mei fixes
- hyperv fixes
- new ja_JP translation update
all tiny stuff, but fixes for issues people have reported."
* tag 'char-misc-3.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
HOWTO ja_JP sync
mei: me: fix waiting for hw ready
mei: don't have to clean the state on power up
mei: me: fix reset state machine
mei: hbm: fix typo in error message
Tools: hv: KVP: Fix a bug in IPV6 subnet enumeration
Drivers: hv: balloon: Do not post pressure status if interrupted
Drivers: hv: balloon: Fix a bug in the hot-add code
Drivers: hv: vmbus: incorrect device name is printed when child device is unregistered
-rw-r--r-- | Documentation/ja_JP/HOWTO | 44 | ||||
-rw-r--r-- | drivers/hv/hv_balloon.c | 21 | ||||
-rw-r--r-- | drivers/hv/vmbus_drv.c | 8 | ||||
-rw-r--r-- | drivers/misc/mei/hbm.c | 2 | ||||
-rw-r--r-- | drivers/misc/mei/hw-me.c | 14 | ||||
-rw-r--r-- | drivers/misc/mei/init.c | 3 | ||||
-rw-r--r-- | tools/hv/hv_kvp_daemon.c | 5 |
7 files changed, 55 insertions, 42 deletions
diff --git a/Documentation/ja_JP/HOWTO b/Documentation/ja_JP/HOWTO index 050d37fe6d40..8148a47fc70e 100644 --- a/Documentation/ja_JP/HOWTO +++ b/Documentation/ja_JP/HOWTO | |||
@@ -11,14 +11,14 @@ for non English (read: Japanese) speakers and is not intended as a | |||
11 | fork. So if you have any comments or updates for this file, please try | 11 | fork. So if you have any comments or updates for this file, please try |
12 | to update the original English file first. | 12 | to update the original English file first. |
13 | 13 | ||
14 | Last Updated: 2011/03/31 | 14 | Last Updated: 2013/07/19 |
15 | ================================== | 15 | ================================== |
16 | これは、 | 16 | これは、 |
17 | linux-2.6.38/Documentation/HOWTO | 17 | linux-3.10/Documentation/HOWTO |
18 | の和訳です。 | 18 | の和訳です。 |
19 | 19 | ||
20 | 翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > | 20 | 翻訳団体: JF プロジェクト < http://linuxjf.sourceforge.jp/ > |
21 | 翻訳日: 2011/3/28 | 21 | 翻訳日: 2013/7/19 |
22 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> | 22 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> |
23 | 校正者: 松倉さん <nbh--mats at nifty dot com> | 23 | 校正者: 松倉さん <nbh--mats at nifty dot com> |
24 | 小林 雅典さん (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> | 24 | 小林 雅典さん (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> |
@@ -245,7 +245,7 @@ Linux カーネルソースツリーの中に含まれる、きれいにし、 | |||
245 | 自己参照方式で、索引がついた web 形式で、ソースコードを参照することが | 245 | 自己参照方式で、索引がついた web 形式で、ソースコードを参照することが |
246 | できます。この最新の素晴しいカーネルコードのリポジトリは以下で見つかり | 246 | できます。この最新の素晴しいカーネルコードのリポジトリは以下で見つかり |
247 | ます- | 247 | ます- |
248 | http://sosdg.org/~qiyong/lxr/ | 248 | http://lxr.linux.no/+trees |
249 | 249 | ||
250 | 開発プロセス | 250 | 開発プロセス |
251 | ----------------------- | 251 | ----------------------- |
@@ -253,24 +253,24 @@ Linux カーネルソースツリーの中に含まれる、きれいにし、 | |||
253 | Linux カーネルの開発プロセスは現在幾つかの異なるメインカーネル「ブラン | 253 | Linux カーネルの開発プロセスは現在幾つかの異なるメインカーネル「ブラン |
254 | チ」と多数のサブシステム毎のカーネルブランチから構成されます。 | 254 | チ」と多数のサブシステム毎のカーネルブランチから構成されます。 |
255 | これらのブランチとは- | 255 | これらのブランチとは- |
256 | - メインの 2.6.x カーネルツリー | 256 | - メインの 3.x カーネルツリー |
257 | - 2.6.x.y -stable カーネルツリー | 257 | - 3.x.y -stable カーネルツリー |
258 | - 2.6.x -git カーネルパッチ | 258 | - 3.x -git カーネルパッチ |
259 | - サブシステム毎のカーネルツリーとパッチ | 259 | - サブシステム毎のカーネルツリーとパッチ |
260 | - 統合テストのための 2.6.x -next カーネルツリー | 260 | - 統合テストのための 3.x -next カーネルツリー |
261 | 261 | ||
262 | 2.6.x カーネルツリー | 262 | 3.x カーネルツリー |
263 | ----------------- | 263 | ----------------- |
264 | 264 | ||
265 | 2.6.x カーネルは Linus Torvalds によってメンテナンスされ、kernel.org | 265 | 3.x カーネルは Linus Torvalds によってメンテナンスされ、kernel.org |
266 | の pub/linux/kernel/v2.6/ ディレクトリに存在します。この開発プロセスは | 266 | の pub/linux/kernel/v3.x/ ディレクトリに存在します。この開発プロセスは |
267 | 以下のとおり- | 267 | 以下のとおり- |
268 | 268 | ||
269 | - 新しいカーネルがリリースされた直後に、2週間の特別期間が設けられ、 | 269 | - 新しいカーネルがリリースされた直後に、2週間の特別期間が設けられ、 |
270 | この期間中に、メンテナ達は Linus に大きな差分を送ることができます。 | 270 | この期間中に、メンテナ達は Linus に大きな差分を送ることができます。 |
271 | このような差分は通常 -next カーネルに数週間含まれてきたパッチです。 | 271 | このような差分は通常 -next カーネルに数週間含まれてきたパッチです。 |
272 | 大きな変更は git(カーネルのソース管理ツール、詳細は | 272 | 大きな変更は git(カーネルのソース管理ツール、詳細は |
273 | http://git-scm.com/ 参照) を使って送るのが好ましいやり方ですが、パッ | 273 | http://git-scm.com/ 参照) を使って送るのが好ましいやり方ですが、パッ |
274 | チファイルの形式のまま送るのでも十分です。 | 274 | チファイルの形式のまま送るのでも十分です。 |
275 | 275 | ||
276 | - 2週間後、-rc1 カーネルがリリースされ、この後にはカーネル全体の安定 | 276 | - 2週間後、-rc1 カーネルがリリースされ、この後にはカーネル全体の安定 |
@@ -302,20 +302,20 @@ Andrew Morton が Linux-kernel メーリングリストにカーネルリリー | |||
302 | 実に認識されたバグの状況によりリリースされるのであり、前もって決めら | 302 | 実に認識されたバグの状況によりリリースされるのであり、前もって決めら |
303 | れた計画によってリリースされるものではないからです。」 | 303 | れた計画によってリリースされるものではないからです。」 |
304 | 304 | ||
305 | 2.6.x.y -stable カーネルツリー | 305 | 3.x.y -stable カーネルツリー |
306 | --------------------------- | 306 | --------------------------- |
307 | 307 | ||
308 | バージョン番号が4つの数字に分かれているカーネルは -stable カーネルです。 | 308 | バージョン番号が3つの数字に分かれているカーネルは -stable カーネルです。 |
309 | これには、2.6.x カーネルで見つかったセキュリティ問題や重大な後戻りに対 | 309 | これには、3.x カーネルで見つかったセキュリティ問題や重大な後戻りに対 |
310 | する比較的小さい重要な修正が含まれます。 | 310 | する比較的小さい重要な修正が含まれます。 |
311 | 311 | ||
312 | これは、開発/実験的バージョンのテストに協力することに興味が無く、 | 312 | これは、開発/実験的バージョンのテストに協力することに興味が無く、 |
313 | 最新の安定したカーネルを使いたいユーザに推奨するブランチです。 | 313 | 最新の安定したカーネルを使いたいユーザに推奨するブランチです。 |
314 | 314 | ||
315 | もし、2.6.x.y カーネルが存在しない場合には、番号が一番大きい 2.6.x が | 315 | もし、3.x.y カーネルが存在しない場合には、番号が一番大きい 3.x が |
316 | 最新の安定版カーネルです。 | 316 | 最新の安定版カーネルです。 |
317 | 317 | ||
318 | 2.6.x.y は "stable" チーム <stable@kernel.org> でメンテされており、必 | 318 | 3.x.y は "stable" チーム <stable@kernel.org> でメンテされており、必 |
319 | 要に応じてリリースされます。通常のリリース期間は 2週間毎ですが、差し迫っ | 319 | 要に応じてリリースされます。通常のリリース期間は 2週間毎ですが、差し迫っ |
320 | た問題がなければもう少し長くなることもあります。セキュリティ関連の問題 | 320 | た問題がなければもう少し長くなることもあります。セキュリティ関連の問題 |
321 | の場合はこれに対してだいたいの場合、すぐにリリースがされます。 | 321 | の場合はこれに対してだいたいの場合、すぐにリリースがされます。 |
@@ -324,7 +324,7 @@ Andrew Morton が Linux-kernel メーリングリストにカーネルリリー | |||
324 | イルにはどのような種類の変更が -stable ツリーに受け入れ可能か、またリ | 324 | イルにはどのような種類の変更が -stable ツリーに受け入れ可能か、またリ |
325 | リースプロセスがどう動くかが記述されています。 | 325 | リースプロセスがどう動くかが記述されています。 |
326 | 326 | ||
327 | 2.6.x -git パッチ | 327 | 3.x -git パッチ |
328 | ------------------ | 328 | ------------------ |
329 | 329 | ||
330 | git リポジトリで管理されているLinus のカーネルツリーの毎日のスナップ | 330 | git リポジトリで管理されているLinus のカーネルツリーの毎日のスナップ |
@@ -358,14 +358,14 @@ quilt シリーズとして公開されているパッチキューも使われ | |||
358 | をつけることができます。大部分のこれらの patchwork のサイトは | 358 | をつけることができます。大部分のこれらの patchwork のサイトは |
359 | http://patchwork.kernel.org/ でリストされています。 | 359 | http://patchwork.kernel.org/ でリストされています。 |
360 | 360 | ||
361 | 統合テストのための 2.6.x -next カーネルツリー | 361 | 統合テストのための 3.x -next カーネルツリー |
362 | --------------------------------------------- | 362 | --------------------------------------------- |
363 | 363 | ||
364 | サブシステムツリーの更新内容がメインラインの 2.6.x ツリーにマージされ | 364 | サブシステムツリーの更新内容がメインラインの 3.x ツリーにマージされ |
365 | る前に、それらは統合テストされる必要があります。この目的のため、実質的 | 365 | る前に、それらは統合テストされる必要があります。この目的のため、実質的 |
366 | に全サブシステムツリーからほぼ毎日プルされてできる特別なテスト用のリ | 366 | に全サブシステムツリーからほぼ毎日プルされてできる特別なテスト用のリ |
367 | ポジトリが存在します- | 367 | ポジトリが存在します- |
368 | http://git.kernel.org/?p=linux/kernel/git/sfr/linux-next.git | 368 | http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git |
369 | http://linux.f-seidel.de/linux-next/pmwiki/ | 369 | http://linux.f-seidel.de/linux-next/pmwiki/ |
370 | 370 | ||
371 | このやり方によって、-next カーネルは次のマージ機会でどんなものがメイン | 371 | このやり方によって、-next カーネルは次のマージ機会でどんなものがメイン |
diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c index 4c605c70ebf9..deb5c25305af 100644 --- a/drivers/hv/hv_balloon.c +++ b/drivers/hv/hv_balloon.c | |||
@@ -562,7 +562,7 @@ static void hv_mem_hot_add(unsigned long start, unsigned long size, | |||
562 | struct hv_hotadd_state *has) | 562 | struct hv_hotadd_state *has) |
563 | { | 563 | { |
564 | int ret = 0; | 564 | int ret = 0; |
565 | int i, nid, t; | 565 | int i, nid; |
566 | unsigned long start_pfn; | 566 | unsigned long start_pfn; |
567 | unsigned long processed_pfn; | 567 | unsigned long processed_pfn; |
568 | unsigned long total_pfn = pfn_count; | 568 | unsigned long total_pfn = pfn_count; |
@@ -607,14 +607,11 @@ static void hv_mem_hot_add(unsigned long start, unsigned long size, | |||
607 | 607 | ||
608 | /* | 608 | /* |
609 | * Wait for the memory block to be onlined. | 609 | * Wait for the memory block to be onlined. |
610 | * Since the hot add has succeeded, it is ok to | ||
611 | * proceed even if the pages in the hot added region | ||
612 | * have not been "onlined" within the allowed time. | ||
610 | */ | 613 | */ |
611 | t = wait_for_completion_timeout(&dm_device.ol_waitevent, 5*HZ); | 614 | wait_for_completion_timeout(&dm_device.ol_waitevent, 5*HZ); |
612 | if (t == 0) { | ||
613 | pr_info("hot_add memory timedout\n"); | ||
614 | has->ha_end_pfn -= HA_CHUNK; | ||
615 | has->covered_end_pfn -= processed_pfn; | ||
616 | break; | ||
617 | } | ||
618 | 615 | ||
619 | } | 616 | } |
620 | 617 | ||
@@ -978,6 +975,14 @@ static void post_status(struct hv_dynmem_device *dm) | |||
978 | dm->num_pages_ballooned + | 975 | dm->num_pages_ballooned + |
979 | compute_balloon_floor(); | 976 | compute_balloon_floor(); |
980 | 977 | ||
978 | /* | ||
979 | * If our transaction ID is no longer current, just don't | ||
980 | * send the status. This can happen if we were interrupted | ||
981 | * after we picked our transaction ID. | ||
982 | */ | ||
983 | if (status.hdr.trans_id != atomic_read(&trans_id)) | ||
984 | return; | ||
985 | |||
981 | vmbus_sendpacket(dm->dev->channel, &status, | 986 | vmbus_sendpacket(dm->dev->channel, &status, |
982 | sizeof(struct dm_status), | 987 | sizeof(struct dm_status), |
983 | (unsigned long)NULL, | 988 | (unsigned long)NULL, |
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index a2464bf07c49..e8e071fc1d6d 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c | |||
@@ -690,7 +690,7 @@ int vmbus_device_register(struct hv_device *child_device_obj) | |||
690 | if (ret) | 690 | if (ret) |
691 | pr_err("Unable to register child device\n"); | 691 | pr_err("Unable to register child device\n"); |
692 | else | 692 | else |
693 | pr_info("child device %s registered\n", | 693 | pr_debug("child device %s registered\n", |
694 | dev_name(&child_device_obj->device)); | 694 | dev_name(&child_device_obj->device)); |
695 | 695 | ||
696 | return ret; | 696 | return ret; |
@@ -702,14 +702,14 @@ int vmbus_device_register(struct hv_device *child_device_obj) | |||
702 | */ | 702 | */ |
703 | void vmbus_device_unregister(struct hv_device *device_obj) | 703 | void vmbus_device_unregister(struct hv_device *device_obj) |
704 | { | 704 | { |
705 | pr_debug("child device %s unregistered\n", | ||
706 | dev_name(&device_obj->device)); | ||
707 | |||
705 | /* | 708 | /* |
706 | * Kick off the process of unregistering the device. | 709 | * Kick off the process of unregistering the device. |
707 | * This will call vmbus_remove() and eventually vmbus_device_release() | 710 | * This will call vmbus_remove() and eventually vmbus_device_release() |
708 | */ | 711 | */ |
709 | device_unregister(&device_obj->device); | 712 | device_unregister(&device_obj->device); |
710 | |||
711 | pr_info("child device %s unregistered\n", | ||
712 | dev_name(&device_obj->device)); | ||
713 | } | 713 | } |
714 | 714 | ||
715 | 715 | ||
diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c index f9296abcf02a..6127ab64bb39 100644 --- a/drivers/misc/mei/hbm.c +++ b/drivers/misc/mei/hbm.c | |||
@@ -167,7 +167,7 @@ int mei_hbm_start_req(struct mei_device *dev) | |||
167 | 167 | ||
168 | dev->hbm_state = MEI_HBM_IDLE; | 168 | dev->hbm_state = MEI_HBM_IDLE; |
169 | if (mei_write_message(dev, mei_hdr, dev->wr_msg.data)) { | 169 | if (mei_write_message(dev, mei_hdr, dev->wr_msg.data)) { |
170 | dev_err(&dev->pdev->dev, "version message writet failed\n"); | 170 | dev_err(&dev->pdev->dev, "version message write failed\n"); |
171 | dev->dev_state = MEI_DEV_RESETTING; | 171 | dev->dev_state = MEI_DEV_RESETTING; |
172 | mei_reset(dev, 1); | 172 | mei_reset(dev, 1); |
173 | return -ENODEV; | 173 | return -ENODEV; |
diff --git a/drivers/misc/mei/hw-me.c b/drivers/misc/mei/hw-me.c index e4f8dec4dc3c..b22c7e247225 100644 --- a/drivers/misc/mei/hw-me.c +++ b/drivers/misc/mei/hw-me.c | |||
@@ -239,14 +239,18 @@ static int mei_me_hw_ready_wait(struct mei_device *dev) | |||
239 | if (mei_me_hw_is_ready(dev)) | 239 | if (mei_me_hw_is_ready(dev)) |
240 | return 0; | 240 | return 0; |
241 | 241 | ||
242 | dev->recvd_hw_ready = false; | ||
242 | mutex_unlock(&dev->device_lock); | 243 | mutex_unlock(&dev->device_lock); |
243 | err = wait_event_interruptible_timeout(dev->wait_hw_ready, | 244 | err = wait_event_interruptible_timeout(dev->wait_hw_ready, |
244 | dev->recvd_hw_ready, MEI_INTEROP_TIMEOUT); | 245 | dev->recvd_hw_ready, |
246 | mei_secs_to_jiffies(MEI_INTEROP_TIMEOUT)); | ||
245 | mutex_lock(&dev->device_lock); | 247 | mutex_lock(&dev->device_lock); |
246 | if (!err && !dev->recvd_hw_ready) { | 248 | if (!err && !dev->recvd_hw_ready) { |
249 | if (!err) | ||
250 | err = -ETIMEDOUT; | ||
247 | dev_err(&dev->pdev->dev, | 251 | dev_err(&dev->pdev->dev, |
248 | "wait hw ready failed. status = 0x%x\n", err); | 252 | "wait hw ready failed. status = %d\n", err); |
249 | return -ETIMEDOUT; | 253 | return err; |
250 | } | 254 | } |
251 | 255 | ||
252 | dev->recvd_hw_ready = false; | 256 | dev->recvd_hw_ready = false; |
@@ -483,7 +487,9 @@ irqreturn_t mei_me_irq_thread_handler(int irq, void *dev_id) | |||
483 | /* check if ME wants a reset */ | 487 | /* check if ME wants a reset */ |
484 | if (!mei_hw_is_ready(dev) && | 488 | if (!mei_hw_is_ready(dev) && |
485 | dev->dev_state != MEI_DEV_RESETTING && | 489 | dev->dev_state != MEI_DEV_RESETTING && |
486 | dev->dev_state != MEI_DEV_INITIALIZING) { | 490 | dev->dev_state != MEI_DEV_INITIALIZING && |
491 | dev->dev_state != MEI_DEV_POWER_DOWN && | ||
492 | dev->dev_state != MEI_DEV_POWER_UP) { | ||
487 | dev_dbg(&dev->pdev->dev, "FW not ready.\n"); | 493 | dev_dbg(&dev->pdev->dev, "FW not ready.\n"); |
488 | mei_reset(dev, 1); | 494 | mei_reset(dev, 1); |
489 | mutex_unlock(&dev->device_lock); | 495 | mutex_unlock(&dev->device_lock); |
diff --git a/drivers/misc/mei/init.c b/drivers/misc/mei/init.c index ed1d75203af6..e6f16f83ecde 100644 --- a/drivers/misc/mei/init.c +++ b/drivers/misc/mei/init.c | |||
@@ -148,7 +148,8 @@ void mei_reset(struct mei_device *dev, int interrupts_enabled) | |||
148 | 148 | ||
149 | dev->hbm_state = MEI_HBM_IDLE; | 149 | dev->hbm_state = MEI_HBM_IDLE; |
150 | 150 | ||
151 | if (dev->dev_state != MEI_DEV_INITIALIZING) { | 151 | if (dev->dev_state != MEI_DEV_INITIALIZING && |
152 | dev->dev_state != MEI_DEV_POWER_UP) { | ||
152 | if (dev->dev_state != MEI_DEV_DISABLED && | 153 | if (dev->dev_state != MEI_DEV_DISABLED && |
153 | dev->dev_state != MEI_DEV_POWER_DOWN) | 154 | dev->dev_state != MEI_DEV_POWER_DOWN) |
154 | dev->dev_state = MEI_DEV_RESETTING; | 155 | dev->dev_state = MEI_DEV_RESETTING; |
diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c index ca9fa4d32e07..07819bfa7dba 100644 --- a/tools/hv/hv_kvp_daemon.c +++ b/tools/hv/hv_kvp_daemon.c | |||
@@ -1026,9 +1026,10 @@ kvp_get_ip_info(int family, char *if_name, int op, | |||
1026 | 1026 | ||
1027 | if (sn_offset == 0) | 1027 | if (sn_offset == 0) |
1028 | strcpy(sn_str, cidr_mask); | 1028 | strcpy(sn_str, cidr_mask); |
1029 | else | 1029 | else { |
1030 | strcat((char *)ip_buffer->sub_net, ";"); | ||
1030 | strcat(sn_str, cidr_mask); | 1031 | strcat(sn_str, cidr_mask); |
1031 | strcat((char *)ip_buffer->sub_net, ";"); | 1032 | } |
1032 | sn_offset += strlen(sn_str) + 1; | 1033 | sn_offset += strlen(sn_str) + 1; |
1033 | } | 1034 | } |
1034 | 1035 | ||