トップ «前の日記(2022 年 12 月 9 日 (金)) 最新
編集 RSS

ワタタツの日記


2022 年 12 月 30 日 (金)

Linuxカーネルの関数の書き方が変わっていたので対応した

LinuxカーネルのPCI関係のモジュールに使っていた関数の書き方が変わっていたので対応しました。

具体的には次のAPIが無くなっていました。

  • pci_alloc_consistent
  • pci_free_consistent
  • pci_set_dma_mask

遅くとも Linux 6.1.0 にはもうありませんでした。実際にはもう少し前から無くなっていたようです。以前までは pci-dma-compat.h に入っていたようです。

Christophe JAILLETさんの Remove usage of the deprecated "pci-dma-compat.h" API という投稿によるととっくにdeprecatedだったようです。を見ます。ここにいくつかのドライバのパッチもあたっているので、どう書き換えればいいのかわかりました。

書き換え方

関数の名前は、

  • pci_alloc_consistent は dma_alloc_coherent に
  • pci_free_consistent は dma_free_coherent に
  • pci_set_dma_mask は dma_set_mask_and_coherent に

それぞれ変更します。

次に、どの関数も、第1引数を p とすると &p->dev に変更します。

dma_alloc_coherent だけは、第4引数として GFP_KERNEL を追加します。

成功

以上でコンパイルも通りました。カーネルにロードして少し使ってみたところ正常に動いているようでした。

Tags: Linux

トップ «前の日記(2022 年 12 月 9 日 (金)) 最新
Copyright © 2024 KITADAI, Yukinori. All rights reserved.