Links:
Home
Code zum Buch
Artikel-Serie
Infos zum Kernel

Linux Treiber entwickeln - 4. Auflage

Eine systematische Einführung in die Gerätetreiber- und Kernelprogrammierung

Hier finden Sie Ergänzungen und Korrekturen zur 4. Auflage.

Linux Treiber entwickeln - 3. Auflage

Eine systematische Einführung in die Gerätetreiber- und Kernelprogrammierung

Hier finden Sie Ergänzungen und Korrekturen zur 3. Auflage.

  • Codebeispiel 6-21-slab.c: Um den Quellcode unter Kernel 3.0 zu übersetzen ist zusätzlich die Headerdatei <linux/delay.h> zu includieren.

Linux Treiber entwickeln - 2. Auflage

Eine systematische Einführung in Gerätetreiber für den Kernel 2.6

  • signal_pending(): Die Beschreibung des Rückgabewertes in Anhang C (Seite 382) und die Verwendung auf Seite 154 sind falsch. Richtig ist:

    "Die Funktion gibt 0 zurück falls kein Signal vorliegt, ansonsten einen Wert ungleich 0."

    if( signal_pending(current) ) {
    ... // ein Signal liegt vor
    } else {
    ... // kein Signal
    }

  • Das Beispiel 5-15 enthält beim Zugriff auf die Variable data_avail_for_read eine Race-Condition. Der Vergleich, ob die Variable belegt ist und das zu Null setzen muss in einer atomaren Operation erfolgen.
  • Der Kernel überprüft zwischenzeitlich, ob der Parameter void *dev_id beim Aufruf der Funktion request_irq besetzt ist oder nicht. Der Code von Beispiel 5-25 auf dieser Webseite ist entsprechend korrigiert.

    Copyright © 2004-2015 Jürgen Quade + Eva-Katharina Kunst -- Impressum