「Linuxデバイスドライバプログラミング」(POD)
正誤表

※POD(プリントオンデマンド)は初版第1刷と同じです。

「Linuxデバイスドライバプログラミング」(初版第2〜5刷)
正誤表

箇所
第5章 図5-9(101ページ) リファレンスカウントは「0」に増える リファレンスカウントは「0」に減る

「Linuxデバイスドライバプログラミング」(初版第1刷)
正誤表

箇所
第3章 図3-1(29ページ) Linuxパソコン・デバック Linuxパソコン・デバッ
第4章 表4-1(46ページ) バージョンスタンプ(vermagic)は、左列から順に、表4-1の意味を持っています。 バージョンスタンプ(vermagic)は、左列から順に、表4-1の意味を持っています。 insmodでカーネルモジュールを組み込む際に、.koファイルに含まれるバージョンスタンプと、組み込み先のOSのバージョンスタンプが比較されます。一致しない場合は insmod がエラーとなります。かつての insmod では -f オプションで、バージョンスタンプの比較を無視して、強制的にカーネルモジュールをロードすることができましたが、現在の insmod ではできなくなりました。
第5章(96ページ) strlcpy()というのは、strlcpy()の変形バージョンで、…。
strlcat()は、strlcat()の安全バージョンで、…。
strlcpy()というのは、strncpy()の変形バージョンで、…。
strlcat()は、strncat()の安全バージョンで、…。
第5章(102ページ) 使用できるメジャー番号やマイナー番号に制限が付くことがります。たとえば、CRAMESでは255までとなっています。 使用できるメジャー番号やマイナー番号に制限が付くことがあります。たとえば、CRAMFS(Compressed ROM filesystem)では255までとなっています。
第5章(107ページ) カーネルが空いているメジャー番号を適当に振ってくれます(動的割り当て)。 カーネルが空いているメジャー番号を適当に振ってくれます(動的割り当て)。ただし、動的割り当てでは、アサインされるメジャー番号は254以下の値となります。このことは、後述する alloc_chrdev_region() を使った場合にも当てはまります。動的割り当てでは、254から降順に空いている番号を割り当ててしまうため、実質 Documentation/devices.txt を無視しています。
第5章(108ページ) cdev_init() でカーネルへの登録を行います。 cdev_add() でカーネルへの登録を行います。
第5章(114ページ) 図5-12 カーネルのcloseシステムフロー 図5-12 カーネルのcloseシステムコールフロー
第5章(143ページ) 図5-16 Bdevファイルを元にmknodする

ドライバロード
図5-16 Bdevファイルを元にmknodする

デバイスファイル
第6章(177ページ) 6-3 elect/poll 6-3 select/poll
第6章(180ページ) 同期I/Oの多重化システムコールがブロックを解除するのは、ユーザプロセスが指定したステータス(読み出し可能か書き込み可能かなど)が有効になった場合です。 同期I/Oの多重化システムコールがブロックを解除するのは、ドライバが poll_wait() で渡したウェイトキューを、ウェイクアップしたときです。カーネルはウェイトキューがウェイクアップされたタイミングで、再度ドライバの poll メソッドである poll_wait() を呼び出し、ステータス(読み出し可能か書き込み可能かなど)を確認します。そのステータスの要因が立つことにより、FD_ISSETマクロが真となります。
第6章(193ページ) ※図6-7の箱にある"off"値に間違いがあります。
off=0, off=0, off=1024, off=1024, off=3072, off=4096
off=0, off=0, off=1024, off=2048, off=3072, off=4096
第6章(218ページ) リスト6-45 wait_event_fimeout()を使ったサンプルコード[main.c] リスト6-45 wait_event_timeout()を使ったサンプルコード[main.c]
第7章(257ページ) さきほどのリスト7-xで登場した さきほどのリスト7-20で登場した
第8章(265ページ) 図8-1 バディシステム
__set_free_pages()、free_pases()など
図8-1 バディシステム
__get_free_pages()、free_pages()など
第9章(340ページ) 表9-3 mod_timeの返り値 表9-3 mod_timerの返り値
第10章(360ページ) そのセマフォが取得できるようにまで そのセマフォが取得できるまで
第11章(396ページ) ワークキューを使ううえでむずかしい、呼び出し関数への ワークキューを使ううえでむずかしいのは、呼び出し関数への
第15章 図15-2(496ページ) NMCFWが動作する場所 BMCFWが動作する場所
第15章(550ページ)
# ipmitool sel info
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 3160
Free Space       : 2332 bytes
Percent Used     : 95%
Last Add Time    : 02/15/2007 23:53:38
Last Del Time    : 06/02/2005 19:47:34
Overflow         : false
Supported Cmds   : 'Delete' 'Partial Add' 'Reserve' 'Get Alloc Info' 
# of Alloc Units : 3276
Alloc Unit Size  : 20
# Free Units     : 116
Largest Free Blk : 116
Max Record Size  : 0
# ipmitool sel info
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 3160
Free Space       : 2332 bytes
Percent Used     : 95%
Last Add Time    : 02/15/2007 23:53:38
Last Del Time    : 06/02/2005 19:47:34
Overflow         : false
Supported Cmds   : 'Delete' 'Partial Add' 'Reserve' 'Get Alloc Info' 
# of Alloc Units : 3276
Alloc Unit Size  : 20
# Free Units     : 116
Largest Free Blk : 116
Max Record Size  : 0
第17章(599ページ) sychronize_irq()で完了待ち合わせを行います。 sychronize_irq()で完了待ち合わせを行います。なお、free_irq()内部でも完了待ち合わせが行われているので、冗長であるかもしれません。

戻る